2017-02-20 21 views
0
title = u.getOrganizations(); 
Gson gson = new Gson(); 
String jsonItems = gson.toJson(title); 
System.out.println(jsonItems); 
if(jsonItems.length() >0 && !jsonItems.equalsIgnoreCase(null)){ 
    JSONArray jObj = new JSONArray(jsonItems); 
    System.out.println(jObj.toString()); 
} 

Выходной ток:Как разобрать объект Java с помощью Gson и получить значения каждого элемента?

[{"name":"ABCD","title":"Test Specialist","primary":true,"customType":"Work"}] 

Ожидаемый результат:

name: ABCD 
title: Test Specialist 
primary: true 
customType: Work 

Это ново для меня, пытался интернет-ресурсы не в состоянии получить то, что я намеревался, ваша помощь очень оцениваем .. спасибо!

+0

У вас возникли проблемы с печатью содержимого jObj ?? – RamPrakash

+0

корректно выводит jObj и обрабатывает нулевые данные, но мне трудно получить только заголовок этого объекта. – s2990

ответ

0

Ваш JSON строка представляет собой массив с одним элементом

Строка jsonString = ваш JSON

  JsonArray jsonArray= new JsonParser().parse(jsonString).getAsJsonArray(); 
      JsonObject jsonObject = (JsonObject) jsonArray.get(0); 
      System.out.println("title :"+jsonObject.get("title")); 

etc ....

+0

работает точно так, как предполагалось, большое спасибо! – s2990

0

Я использовал то же самое, но со списками, я не знаю, будет ли это работать. Со списками у вас есть список объектов, и я создаю список, я создаю объект и добавляю его в список и, наконец, gson.toJson (listaObjects), чтобы преобразовать его в Json. Для того, чтобы разобрать его я делаю только

Gson gson = new Gson(); 
    Type type = new TypeToken<List<ProvinciaDTO>>() { 
    }.getType(); 
objectsList= new Gson().fromJson(listaJSonString, type); 

//foreach of objectsList 

В вашем случае для массивов: вниз голосования принял Ваш JSON строка представляет собой массив с одним элементом

JsonArray jsonArray= new   JsonParser().parse(jsonString).getAsJsonArray(); 
JsonObject jsonObject = (JsonObject) jsonArray.get(0); 
System.out.println("title :"+jsonObject.get("title"));