2017-02-19 13 views
0

Java объект:Разбираем конкретное поле в формате JSON без класса-оболочки

public class Foo { 
@JsonProperty("name") 
private String name; 
@JsonProperty("surname") 
private String surname; 

// getters + setters 
} 

JSON:

{ 
    "meta":{ 
     "code":200 
    }, 
    "data":[ 
     { 
     "name":"John", 
     "surname":"Smith" 
     } 
    ] 
} 

API вызова:

return restTemplate.getForEntity(requestUrl, Foo[].class).getBody(); 

Можно ли разобрать «данные "массив без создания дополнительного класса-оболочки? Я попытался добавить аннотацию @JsonRootName("data") поверх своего Java-класса, но это не сработало.

+0

Gson может сделать это довольно легко. http://stackoverflow.com/questions/37231894/using-gson-and-retrofit-2-to-deserialize-complex-api-responses –

+0

, который выглядит еще сложнее - добавление сотен классов для разбора не является тем, что я ищу для – Bravo

+0

Сотни? Это 1 TypeAdapterFactory, и у Jackson есть собственная десериализация. Java объектно ориентирована, так что у вас есть против классов? –

ответ

0

Вы можете попробовать:

import org.json.*; 

JSONObject obj = new JSONObject(" .... "); 
String name = obj.getJSONObject("data").getString("name"); 
+0

Похоже, что используется Джексон, а не org.json –

Смежные вопросы