users@jersey.java.net

Re: application/json programming model

From: Marc Hadley <Marc.Hadley_at_Sun.COM>
Date: Fri, 31 Aug 2007 09:39:38 -0400

On Aug 31, 2007, at 9:07 AM, Arun Gupta wrote:
>
> -- cut here --
> String[] states = { "California", "New York", "Alabama",
> "Texas"};
> List<String> slist = new ArrayList<String>();
> for (String s : states)
> slist.add(s);
> return new JSONArray(slist);
> -- cut here --
>
You could instead write:

String[] states = { "California", "New York", "Alabama", "Texas"};
return new JSONArray(Arrays.asList(states));

Marc.

>
>>> Have you looked at the JSON support in the JAXB entity provider
>>> that Jakub added ? Take a look at the Bookmark example that
>>> shows it in
>> The Bookmark sample uses directly JSON providers, no JAXB involved.
>> I will publish a blog entry today with a sample showing generation
>> of JSON
>> out of JAXB object.
>> ~Jakub
>>> use. You might not be able to get the exact JSON format you show
>>> below but I'd bet you could get close just using some of the
>>> JAXB annotations.
>>>
>>> Marc.
>>>
>>> On Aug 30, 2007, at 2:33 PM, Arun Gupta wrote:
>>>
>>>> In order to return a JSON array like:
>>>>
>>>> [{"name":"California","value":"California"},{"name":"New
>>>> York","value":"New York"},{"name":"Alabama" ,"value":"Alabama"},
>>>> {"name":"Texas","value":"Texas"}]
>>>>
>>>> I have to write the following code:
>>>>
>>>> -- cut here --
>>>> @HttpMethod("GET")
>>>> @ProduceMime("application/json")
>>>> public JSONArray getMessage() throws JSONException {
>>>> String[] states = { "California", "New York", "Alabama",
>>>> "Texas"};
>>>> JSONArray array = new JSONArray();
>>>> for (String s : states) {
>>>> JSONObject item = new JSONObject();
>>>> item.put("name", s).put("value", s);
>>>> array.put(item);
>>>> }
>>>>
>>>> return array;
>>>> }
>>>> -- cut here --
>>>>
>>>> I think this is too involving and low-level. Can the code be
>>>> something like the following ?
>>>>
>>>> -- cut here --
>>>> @JSONObject
>>>> ItemBean {
>>>> ItemBean(String name, String value) { ... }
>>>>
>>>> @JSONObjectKey
>>>> public String getName() { ... }
>>>>
>>>> @JSONObjectValue("value")
>>>> public String getNameValue() { ... }
>>>> }
>>>>
>>>> @HttpMethod("GET")
>>>> @ProduceMime("application/json")
>>>> public List<ItemBean> getMessage() {
>>>> String[] states = { "California", "New York", "Alabama",
>>>> "Texas"};
>>>> List<ItemBean> list = new ArrayList<ItemBean>();
>>>> for (String s : states) {
>>>> ItemBean bean = new ItemBean(s, s);
>>>> list.add(bean);
>>>> }
>>>>
>>>> return list;
>>>> }
>>>> -- cut here --
>>>>
>>>> This will require defining new annotations JSONObject,
>>>> JSONObjectKey & JSONObjectValue. I think this is more natural to
>>>> a Java developer.
>>>>
>>>> -Arun
>>>> --
>>>> Web Technologies and Standards
>>>> Sun Microsystems, Inc.
>>>> Blog: http://blogs.sun.com/arungupta
>>>>
>>>> -------------------------------------------------------------------
>>>> --
>>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>>
>>> ---
>>> Marc Hadley <marc.hadley at sun.com>
>>> CTO Office, Sun Microsystems.
>>>
>>>
>>> --------------------------------------------------------------------
>>> -
>>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
>> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>
> --
> Web Technologies and Standards
> Sun Microsystems, Inc.
> Blog: http://blogs.sun.com/arungupta
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>

---
Marc Hadley <marc.hadley at sun.com>
CTO Office, Sun Microsystems.