Разобрать конкретное поле JSON без класса-оболочки

Java-объект:

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, но это не сработало.


person Bravo    schedule 19.02.2017    source источник
comment
Gson может сделать это довольно легко. stackoverflow.com/questions/37231894/   -  person OneCricketeer    schedule 19.02.2017
comment
это выглядит еще сложнее — добавление сотен классов для синтаксического анализа — это не то, что я ищу   -  person Bravo    schedule 19.02.2017
comment
Сотни? Это 1 TypeAdapterFactory, и у Джексона есть собственная десериализация. Java объектно-ориентирован, так что вы имеете против классов?   -  person OneCricketeer    schedule 19.02.2017


Ответы (1)


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

import org.json.*;

JSONObject obj = new JSONObject(" .... ");
String name = obj.getJSONObject("data").getString("name");
person juanlumn    schedule 19.02.2017
comment
Похоже, используется Джексон, а не org.json - person OneCricketeer; 19.02.2017