users@jersey.java.net

[Jersey] Re: Unmarshalling JSON using MoxyJsonProvider

From: John Brooks <iresprite_at_gmail.com>
Date: Wed, 30 Jul 2014 21:18:15 -0400

Also, I already had moxy included in my pom.xml

     <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-moxy</artifactId>
    <version>2.10.1</version>

Is that the correct way to include it?


On Wed, Jul 30, 2014 at 11:32 AM, John Brooks <iresprite_at_gmail.com> wrote:

> Thanks for the example, Aris! Hm, I don't see the Activity class in the
> Jersey or MOXy APIs, so I'm inferring that this is the POJO class. Is that
> correct? And setTags is just a way to initialize the data?
>
> Also, I'm guessing that the endpoint at /activities has been coded to just
> echo back the JSON object sent to it; am I reading that correctly?
>
> Again, thanks for your time! It's pretty exciting getting my teeth back
> into Java.
>
> John
>
>
> On Wed, Jul 30, 2014 at 8:19 AM, Aris Alexis <aris.alexis.gia_at_gmail.com>
> wrote:
>
>> I think you are making it more complicated than it really is.
>>
>> 1)Make a POJO (normal object with getters and setters)
>> 2)Include media-moxy maven package in your project
>> 3)write a test for your service like:
>>
>> Activity=new Activity();
>> activity.setTags(tags);
>>
>> Client client =
>> ClientBuilder.newBuilder().register(MoxyJsonFeature.class).build();
>>
>> Entity<Activity> ent= Entity.entity(activity,
>> MediaType.APPLICATION_JSON);
>> Response response =
>> client.target(hostname+"/activities").request(MediaType.APPLICATION_JSON).header("Cookie",
>> getSessionId()).post(ent);
>> assertEquals(Response.Status.OK.getStatusCode(),
>> response.getStatus());
>> assertEquals(true,response.hasEntity());
>>
>> //COMMENT JSONObject jo=new
>> JSONObject(response.readEntity(String.class));
>>
>> Activity retAct=response.readEntity(Activity.class);
>> assertEquals(activity,retAct);
>>
>> Best Regards,
>> Aris Giachnis
>>
>>
>> On Wed, Jul 30, 2014 at 2:21 AM, John Brooks <iresprite_at_gmail.com> wrote:
>>
>>> Hi, all- I'm trying to get my head around how to take JSON and map it to
>>> an object using MOXyJsonProvider. I'm using the Planetside 2 API for a toy
>>> project using this page
>>> <http://census.soe.com/get/ps2:v2/character/5428010618020694593> as my
>>> test. I used the documentation to get me this far:
>>>
>>> http://pastebin.com/jQ9LuCRe
>>>
>>> So I can print my response successfully as a string, but I don't fully
>>> understand how to write it to a POJO. I've seen a couple of examples of
>>> unmarshalling JSON to an object, and it looks like I create a public class
>>> that has members that map to the elements of the JSON array. (I got that
>>> bit of information from Blaise Doughan's blog here
>>> <http://blog.bdoughan.com/2013/07/eclipselink-moxy-and-java-api-for-json.html> and
>>> here
>>> <http://blog.bdoughan.com/2012/03/moxy-as-your-jax-rs-json-provider_15.html>.
>>> From what I can see, I create a class like so:
>>>
>>> public class Character {
>>> private Character_list character_list;
>>> private int returned;
>>> private Timing timing;
>>>
>>> }
>>>
>>> With Character_list and Timing being classes that contain the necessary
>>> members that map to the data I want, and so on. I *think* I'm on the
>>> right track, but I'm missing one or two intuitive leaps and could use some
>>> help here. Can someone explain how I get from where I am to being able to
>>> put the resulting JSON string into an object?
>>>
>>> Thanks, and sorry for all the rank beginner stuff here!
>>>
>>> John
>>>
>>
>>
>