2015-03-23 3 views
0

У меня есть JSONArray, который имеет несколько объектов. Мне нужна помощь в реализации, так что все узлы, содержащие givenName: Carlos должны быть на высоте в порядке.Узлы JSON Манипуляции в JSONArray

{ 
     "personList": [ 
      { 
       "givenName": "Jim", 
       "formattedName": "jimJackson", 
       "familyName": null, 
       "middleName": "none", 
       "honorificPrefix": "mr", 
       "honorificSuffix": "none" 
      }, 
      { 
       "givenName": "john", 
       "formattedName": "johnLasher", 
       "familyName": null, 
       "middleName": "none", 
       "honorificPrefix": "mr", 
       "honorificSuffix": "none" 
      }, 
      { 
       "givenName": "carlos1", 
       "formattedName": "carlosAddner", 
       "familyName": null, 
       "middleName": "none", 
       "honorifiPrefix": "mr", 
       "honorificSuffix": "none" 
      }, 
      { 
       "givenName": "lisa", 
       "formattedName": "lisaRay", 
       "familyName": null, 
       "middleName": "none", 
       "honorificPrefix": "mrs", 
       "honorificSuffix": "none" 
      }, 
      { 
       "givenName": "carlos2", 
       "formattedName": "bradshawLion", 
       "familyName": null, 
       "middleName": "none", 
       "honorificPrefix": "mr", 
       "honorificSuffix": "none" 
      }, 
      { 
       "givenName": "phill", 
       "formattedName": "phillKane", 
       "familyName": null, 
       "middleName": "none", 
       "honorificPrefix": "mr", 
       "honorificSuffix": "none" 
      }, 
      { 
       "givenName": "carlos3", 
       "formattedName": "gabrielMoosa", 
       "familyName": null, 
       "middleName": "none", 
       "honorificPrefix": "mr", 
       "honorificSuffix": "none" 
      } 
    ] 
} 

фрагмент кода, чтобы показать все узлы на выход

JSONArray jsonArray= (JSONArray) jsonObject.get("personList"); 

for (int i = 0; i < jsonArray.size(); i++) { 
    System.out.println(jsonArray.get(i)); 


} 

Я думал о создании нового объекта JSONArray и скопировать узел, который содержит Карлос. Выпуски -

  1. Как скопировать определенный узел в новый JSONArray?
  2. Я знаю, что JSONArray не упорядочен, но могу ли я отсортировать эти узлы с помощью конкретного ключа/значения?

Любая помощь будет оценена по достоинству.

ответ

0

Сначала вы можете создать карту (String, Object) и добавить все объекты JSON в Map.

Что я обычно делаю, это создать модель из объекта JSON. Например, создайте объект Person и проанализируйте массив JSON в List (Person).

В вашем случае вы можете создать карту (String, Person) с ключом как givenName. После этого вы можете делать то, что вы хотите с Коллекция: сортировать его, цикл через него, создать компаратор и т.д.

0

Создать класс

class BO{ 
String givenName; 
String familyName; 
String formattedName; 
String middleName; 
String honorificPrefix; 
String honorificSuffix; 
} 

Вы можете использовать Gson библиотеку (или любой другой) для разбора json в объект java. Как только у вас есть объект java для каждого объекта json, создайте его.

Внесите воплощение в соответствие с интерфейсом comparator, и вы можете сравнить объект в соответствии с вашими потребностями.

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