Подтвердить что ты не робот

Jackson Deserialize Variable как Json String

У меня есть такая модель:

private String message;
private Integer errorCode;    
private String data;

Я получаю, например, следующий JSON из удаленного:

{"data": {"cat": "1.2.3.4", "ner": "80", "name": "pinta" }, "message" : "m", "errorCode" : 12}

Когда я десериализую этот JSON, переменные message и errorCode получают правильное значение. Однако я не хочу интерпретировать содержимое моей переменной data. Вместо этого я хочу, чтобы это была следующая строка:

{"cat": "1.2.3.4", "ner": "80", "name": "pinta" }

После этого я буду интерпретировать это сам. Как я могу получить это значение data?

4b9b3361

Ответ 1

Jackson issue 596 был создан для желаемой функциональности, описанной в исходном вопросе. Голосуйте за него, если хотите, чтобы он был реализован.

Текущее решение доступно для реализации пользовательской обработки десериализации.

Кроме того, Как я могу включить raw JSON в объект с использованием темы Jackson?, этот вопрос охватывает эту тему.

Ответ 2

Я бы предпочел, чтобы вы привязывали данные к промежуточному объекту; обычно это либо java.util.Map, либо org.codehaus.jackson.JsonNode (JSON Tree). И тогда вы можете получить доступ к данным любым способом; включая легко преобразование в POJO с помощью ObjectMapper.convertValue(inputPojo, outputType)).