Джексон Джсон Вью для десериализации - PullRequest
5 голосов
/ 21 октября 2011

У меня есть объект Json, возвращающийся с тем же свойством с разными целями на основе запроса (полученный Json вне моего контроля).Меня интересует только значение свойства, когда я делаю конкретный запрос.Есть ли способ использовать представления для десериализации или что-то еще, что будет условно распространять pojo?

Пример: Json

"boo":
{
  "a": "foo"
}

"boo":
{
  "a": { "x": 3 }
}

Java

public class Views {
  public static class WhatIWant {}
  public static class SomeOtherThings {}
}

public class Result {
  @JsonView(View.WhatIWant)
  public string a;
}

Result r = mapper.getDeserializationConfig()
                 .setDeserializationView(Views.WhatIWant.class)??
                 .readValue(node, Result.class);

Ответы [ 2 ]

6 голосов
/ 02 августа 2013

Начиная с версии Jackson 2.0, JSONView доступны и для десериализации .

3 голосов
/ 13 ноября 2011

В Джексоне JSON Views предназначены только для сериализации.

Для десериализации данных JSON в иногда String и в других случаях объекту потребуется пользовательская обработка десериализации .

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