Джексон JSON lib, как указать начало элемента для десериализации - PullRequest
4 голосов
/ 09 июня 2011

Я использую Джексона для десериализации данных JSON. Я использую objectmapper для десериализации данных и хочу игнорировать неизвестные свойства, используя mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);

Есть ли в Джексоне способ указать начало элемента, который я хочу десериализовать? В моих данных JSON есть еще несколько элементов, но меня интересует только один элемент для десериализации.

Ответы [ 2 ]

1 голос
/ 10 июня 2011

Структура объекта должна соответствовать структуре JSON, поэтому чаще всего наиболее удобно просто использовать классы-оболочки, если это необходимо.Что-то вроде:

class Response {
  public Thing value;
}
class Thing {
  public String name;
}

, поэтому, даже если вы просто хотите «имя», вы сделаете что-то вроде:

Response resp = mapper.readValue(jsonInput, Response.class);
String name = response.value.name;

Если это так, вы можете опустить определение свойств, которые вас не интересуютоколо;или определить их, а не использовать.

0 голосов
/ 05 февраля 2013

JAXB поддерживает выражения XPath для сопоставления элементов с классами через @XmlPath(...).

Не уверен, что вы можете пропустить корневой элемент, но для вложенных вы можете сделать свойства встроенными, используя @XmlPath(".").

Не уверен, поддерживает ли это Джексон, но EclipeLink JAXB поддерживает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...