2015-07-31 2 views
-3

документ JSON имеет следующий формат:Java, JSON, нужно получить массив (или коллекцию) объектов

[{"category":{"id":123, "name": "Some Category", "type": "some type"}}, 
{"category":{"id":234, "name": "Another Category", "type": "some type"}}, 
{"category":{"id":345, "name": "New Category", "type": "other type"}}] 

я планирую создать класс Category (с «именем» «ID», «type») и использовать GSon или FasterXML для анализа этого JSON и получения массива (или коллекции) объектов Category.

Возможно ли это?

У кого-нибудь есть рецепт для этого случая - когда элементы НЕ сразу находятся на верхнем уровне в JSON, но «вложены», как в примере выше?

+3

Да, это возможно! Подумайте, вы должны сначала попробовать Google! –

+0

Я сделал это первым. Я не настолько глуп. – user3791111

+0

ОК, разместите свой код. Что вы пробовали? –

ответ

0

Я использовал это:

String jsonString = ... // my JSON as a String 
List<Category> Categories = new ArrayList<>(); 
JSONArray array = new JSONArray(jsonString); 
int n = array.length(); 
for(int i = 0; i < n; i++) { 
    JSONObject wrapperObj = array.getJSONObject(i); 
    JSONObject obj = wrapperObj.getJSONObject("category"); 
    Category category = gson.fromJson(obj.toString(), Category.class); 
    Categories.add(category); 
} 
Смежные вопросы