2016-03-12 2 views
0

Я передаю вход в мой API, как это:Как разобрать вложенный вход JSON на объект в трикотаж?

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

Я хочу, чтобы разобрать этот запрос JSON в объект, например:

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

} 

Как можно автоматически создать экземпляр объекта фильтра в моем методе API ?

Заранее спасибо.

ответ

3

Вы можете использовать Джексоном Mapper

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

или если Вы используете Джерси вместо

<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; 
} 
Смежные вопросы