users@jersey.java.net

Re: application/json programming model

From: Arun Gupta <Arun.Gupta_at_Sun.COM>
Date: Thu, 30 Aug 2007 18:02:07 -0700

Thanks Marc, I'll look at that sample.

Are there any docs on writing custom Entity Provider ?

-Arun

Marc Hadley wrote:
> What you propose would certainly be possible. You'd have to write a
> custom EntityProvider that will serialize and deserialize instances of
> classes with those annotations.
>
> 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 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
>

-- 
Web Technologies and Standards
Sun Microsystems, Inc.
Blog: http://blogs.sun.com/arungupta