0

I am passing input to my API like this:

{
  "param1": "value1",
  "param2":"value2",
  "param3": {
               "min": "xyz",
               "max": "abc"
            }
}

I want to parse this JSON request into object like :

class Filter {
       String param1;
       String param2;
       //frequency object will consist of maximum and minimum attributes
       Frequency frequency

}

How it is possible to automatically instantiate filter object in my API method?

Thanks in advance.

Mahesh Khond
  • 1,297
  • 1
  • 14
  • 31

1 Answers1

3

You can use jackson mapper

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.7.2</version>
</dependency>

or if You using Jersey instead

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>2.22.2</version>
</dependency>

ObjectMapper mapper = new ObjectMapper();
String jsonString = "{\"param1\":\"Bar\",\"param2\":\"Foo\",\"frequency\":{\"min\":0,\"max\":10}}";
Filter filter = mapper.readValue(jsonString, Filter.class);
System.out.println(mapper.writeValueAsString(filter));

public class Filter {
    public String param1;
    public String param2;
    public Frequency frequency;
}

public class Frequency {
    public int min;
    public int max;
}
Enigo
  • 3,685
  • 5
  • 29
  • 54