2015-07-30 2 views
1

У меня есть ресурс, который структурирован таким образом:JsonNode findValue без Поиск дочерних узлов

"activity": { 
      "activity_type": "Like", 
      "activity_id": "123456", 
      "object_id": "", 
      "product_id":"", 
      "reference_activity": { 
        "activity_type": "Rating", 
        "activity_id": "789456", 
        "object_id": "rating/5", 
        "product_id": "product.v1.13445123", 
        "timestamp": 1433447044000 
      }, 
      "timestamp": 1435790640115 
} 

Проблема заключается в том, что ресурс может содержать объект того же класса (то есть ссылки на другой «активность»). В результате они имеют похожие имена значений. Я пытаюсь разобрать эту структуру JSON, используя метод JsonNode.findValue() Jackson, но метод findValue() выполняет также вложенный поиск. Поэтому, если я нахожу findValue («object_id»), он никогда не вернет пустую строку. Вместо этого он всегда будет возвращать «рейтинг/5».

  1. Есть ли способ ограничить метод findValue() непосредственным детьми?
  2. Или есть способ удалить объект reference_activity из родительской структуры (но все еще сохранить объект JsonNode), чтобы я мог разобрать их отдельно?

ответ

3

Если вам не нужна рекурсивная находка, просто используйте path или get методы?

+0

Это то, что я искал! Благодаря! – wilc0

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