Hi Arun,
you can look at Paul's blog entry at:
http://blogs.sun.com/sandoz/entry/plugable_types_with_jax_rs
~Jakub
On Thu, Aug 30, 2007 at 06:02:07PM -0700, Arun Gupta wrote:
> 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> For additional commands, e-mail: users-help_at_jersey.dev.java.net
>