2015-10-07 2 views
0
{ 
"serialNumber": 
{ 
    "number":"123443344334", 
}, 
"receivedTime":"10/1/2015 6:06:22 PM", 
"sessionId":"123456", 
"dataPoint": 
    [ 
     {"storedTime":"2015-10-01T11:45:23.000Z", 
     "groupID":"123", 
     "groupIndex":1, 
     "vtmIndex":0, 
     "dataType":"CONDITION", 
     "data": 
      { 
      "conditionType":"TYPEA", 
      "timeStamp":"2015-10-01T11:45:23.000Z" 
      } 
     }, 
     {"storedTime":"2015-10-01T11:45:23.000Z", 
     "groupID":"123", 
     "groupIndex":2, 
     "vtmIndex":1, 
     "dataType":"LOCATION", 
     "data": 
      { 
      "latitude":22.23, 
      "longitude":-43.12, 
      } 
     } 
    ] 

}Как разобрать JSON на основе дочернего узла

Я использую Джексон, и я пытаюсь понять, как разобрать этот частный случай ... большая часть моей другой работы прост, но необходимо второй набор глаз на этом.

В вышеописанном JSON мне нужно найти узел, дочерний ключ «dataType» = «CONDITION», а затем вернуть элемент данных conditionType. Здесь нет других элементов данных, которые также имеют тип данных «CONDITION», но не содержат поле conditionType.

ответ

1

С этой структурой данных, это выглядит, как у вас нет выбора, кроме как перебирать dataPoint массив до тех пор, пока не найдете объект с dataType из CONDITION (то есть, если вы абсолютно не знаете, что этот объект всегда будет в каком-то конкретном индексе позиция - например, 0 в вашем примере). После того как вы нашли этот объект, вам нужно посмотреть только на его свойство data, чтобы найти вложенный объект с conditionType.

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