Yeah, I've run into this too (my situation is worse, I have RESTeasy w/ Jackson, Apache CXF w/ Jettison and a third system using Spring MVC w/ Jackson).
Jettison's JSON structure is more like XML with its use of root elements in a parent wrapper tag. This is acceptable by JSON standards, but not normal by JSON standards. On Wed, Sep 4, 2013 at 4:57 PM, Bill Burke <bbu...@redhat.com> wrote: > JSON is not a *Java* format. It is a JavaScript Object Notation. > > On 9/4/2013 4:54 PM, Mike Miller wrote: >> Thanks - will try that. Just included the Jackson jar but that didn't make >> it. >> >> One last question - don't mean to eat up all your time - but your statement, >> "But you are right, Jettison produces different JSON." How that be? Isn't >> JSON a spec such that there should be consistent output for a set of data? >> >> -----Original Message----- >> From: Bill Burke [mailto:bbu...@redhat.com] >> Sent: Wednesday, September 04, 2013 3:50 PM >> To: Mike Miller >> Cc: resteasy-users@lists.sourceforge.net >> Subject: Re: [Resteasy-users] Confused on handling response containing >> collections in json >> >> Just don't include the jettison module and include all the jackson stuff. >> Should work. >> >> On 9/4/2013 4:19 PM, Mike Miller wrote: >>> Sorry - we are JBoss 4.2.3.GA (still) with RestEasy 2.3.5. >>> >>> -----Original Message----- >>> From: Bill Burke [mailto:bbu...@redhat.com] >>> Sent: Wednesday, September 04, 2013 3:06 PM >>> To: Mike Miller >>> Cc: resteasy-users@lists.sourceforge.net >>> Subject: Re: [Resteasy-users] Confused on handling response containing >>> collections in json >>> >>> What is your server? Tomcat? Jetty? JBoss version? >>> >>> On 9/4/2013 4:02 PM, Mike Miller wrote: >>>> Okay, thanks - so how do I do that? I see Chapter 21 (2.3.5) talks about >>>> Maven but we aren't using maven. Do I just need to include the jar or is >>>> there something in the web.xml that I need to add to include this >>>> 'provider? >>>> >>>> Also could someone please address my last question: >>>> >>>> "Are we using the Response object incorrectly? What's really the >>>> difference between returning List<Customer> vs Response with the >>>> List<Customer> in the generic entity?" >>>> >>>> -----Original Message----- >>>> From: Bill Burke [mailto:bbu...@redhat.com] >>>> Sent: Wednesday, September 04, 2013 2:54 PM >>>> To: resteasy-users@lists.sourceforge.net >>>> Subject: Re: [Resteasy-users] Confused on handling response >>>> containing collections in json >>>> >>>> Switch to Jackson on the server side. We will be deprecating Jettison in >>>> the near future as it is buggy and not being well maintained. >>>> Jackson has all of what Jettison has and more... >>>> >>>> But you are right, Jettison produces different JSON. >>>> >>>> On 9/4/2013 3:27 PM, Mike Miller wrote: >>>>> We are building a restful api, using 2.3.5 (although I don't think >>>>> the release level matters) and I am a bit confused on response >>>>> handling within RestEasy: >>>>> >>>>> Right or wrong, we made most of our resource methods return >>>>> Response, using the GenericEntity when we wanted to return a collection of >>>>> objects. Testing up to now was in Chrome Advanced Rest Client. We >>>>> have our beans JAXB annotated and the resource 'produces' both >>>>> application/xml and application/json. For example: >>>>> >>>>> @GET >>>>> >>>>> @Produces({"application/json", "application/xml"}) >>>>> >>>>> *public*Response find(@ContextUriInfo uriInfo) >>>>> >>>>> { >>>>> >>>>> setupQueryParms(uriInfo.getQueryParameters()); >>>>> >>>>> List<Customer> custList = *null*; >>>>> >>>>> *try*{ >>>>> >>>>> custList = listAllPaginated(); >>>>> >>>>> } *catch*(FinderException e) { >>>>> >>>>> Log./getInstance/().error("FinderException >>>>> caught :", e ); >>>>> >>>>> throwException(Response.Status./NOT_FOUND/, >>>>> "Error searching customers"); >>>>> >>>>> } >>>>> >>>>> GenericEntity<List<Customer>> entity = >>>>> *new*GenericEntity<List<Customer>>(custList) {}; >>>>> >>>>> *return*Response./ok/(entity).build(); >>>>> >>>>> } >>>>> >>>>> Now, as part of writing JUnit test cases, I wanted to take the >>>>> response I get back and put it back to object form so that I can then do >>>>> a set of >>>>> asserts against the object or list of objects returned. I downloaded >>>>> Jackson version 1.9.11 and tried to serialize/marshal the json back >>>>> to object form but keep getting the following error: >>>>> >>>>> Exception in thread "main" >>>>> _org.codehaus.jackson.map.exc.UnrecognizedPropertyException_: >>>>> Unrecognized field "Customer" (Class >>>>> com.jda.portfolio.api.rest.base.Customer), not marked as ignorable >>>>> >>>>> at [Source: C:\PPOSDevelopment\Trunk\API\REST\Server\response.json; >>>>> line: 1, column: 15] (through reference chain: >>>>> com.jda.portfolio.api.rest.base.Customer["Customer"]) >>>>> >>>>> Is there a difference between Jackson json and what RestEasy produces, >>>>> from I think Jettison? I also took the example from User doc section >>>>> 19.6.1 JSON and JAXB collections/arrays >>>>> >>>>> >>>>> >>>>> [{"foo":{"@test":"bill"}},{"foo":{"@test":"monica}"}}] and tried to >>>>> marshal that back to object form - getting the same error. >>>>> >>>>> >>>>> >>>>> It seems like from Jackson, I would get something like: >>>>> >>>>> [{"@test":"bill"},{"@test":"monica}"}] for a List<Foo> - the difference >>>>> being the {foo: } which looks like a wrapper for the object. >>>>> >>>>> >>>>> >>>>> I changed the code to return List<Customer> instead of the Response with >>>>> GenericEntity including the List<Customer> but the json looks the same. >>>>> >>>>> >>>>> >>>>> What am I doing wrong? >>>>> >>>>> >>>>> >>>>> Are we using the Response object incorrectly? What's really the >>>>> difference between returning List<Customer> vs Response with the >>>>> List<Customer> in the generic entity? >>>>> >>>>> >>>>> >>>>> I hope this is clear, but I can provide more details if needed. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> -------------------------------------------------------------------- >>>>> - >>>>> - >>>>> -------- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL >>>>> 2012, more! >>>>> Discover the easy way to master current and previous Microsoft >>>>> technologies and advance your career. Get an incredible 1,500+ hours >>>>> of step-by-step tutorial videos with LearnDevNow. Subscribe today and >>>>> save! >>>>> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg. >>>>> c >>>>> lktrk >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Resteasy-users mailing list >>>>> Resteasy-users@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/resteasy-users >>>>> >>>> >>>> -- >>>> Bill Burke >>>> JBoss, a division of Red Hat >>>> http://bill.burkecentral.com >>>> >>>> --------------------------------------------------------------------- >>>> - >>>> -------- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL >>>> 2012, more! >>>> Discover the easy way to master current and previous Microsoft >>>> technologies and advance your career. Get an incredible 1,500+ hours of >>>> step-by-step tutorial videos with LearnDevNow. Subscribe today and save! >>>> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg. >>>> c lktrk _______________________________________________ >>>> Resteasy-users mailing list >>>> Resteasy-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/resteasy-users >>>> >>> >>> -- >>> Bill Burke >>> JBoss, a division of Red Hat >>> http://bill.burkecentral.com >>> >> >> -- >> Bill Burke >> JBoss, a division of Red Hat >> http://bill.burkecentral.com >> > > -- > Bill Burke > JBoss, a division of Red Hat > http://bill.burkecentral.com > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk > _______________________________________________ > Resteasy-users mailing list > Resteasy-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/resteasy-users ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk _______________________________________________ Resteasy-users mailing list Resteasy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/resteasy-users