users@jersey.java.net

Re: application/json programming model

From: Jakub Podlesak <Jakub.Podlesak_at_Sun.COM>
Date: Fri, 31 Aug 2007 15:49:47 +0200

On Fri, Aug 31, 2007 at 06:24:53AM -0700, Arun Gupta wrote:
> >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.
>
> On this sample, I was wondering what is the need to have a separate
> TestClient project. Can this be integrated in as a test in Bookmark
> project itself ?

You right.

~Jakub

>
> The TestPackages in Bookmark project is currently empty.
>
> -Arun
>
> >
> >~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
>