Разбор json, где field может иметь два разных типа с gson или jackson - PullRequest
3 голосов
/ 17 февраля 2011

У меня есть JSON с полем, которое содержит два разных типа.

"fields":[{"value":"ZIELONE OKO"},{"value":{"@nil":"true"}}]

У меня проблема с десериализацией.Мой класс с моделью содержит:

private String value;

И мне просто нужно перевести {"@nil": "true"} в ноль.Прямо сейчас я получаю ошибку:

The JsonDeserializer StringTypeAdapter failed to deserialized json object {"@nil":"true"} given the type class java.lang.String

1 Ответ

0 голосов
/ 18 февраля 2011

В идеале я бы изменил код, который выдает этот нечетный JSON: не должно ли второе значение просто быть JSON пустым?Я предполагаю, что он создается каким-то сложным процессом, начиная с XML (который должен использовать 'isNul', чтобы различать пустую строку и пустую строку).

Но если это невозможно, я думаю, что и Джексон, и Гсонпотребует либо пользовательский десериализатор;или сначала связать с общей картой, а затем явно обработать странные значения.Во втором случае вы просто объявляете тип для привязки как Map (возможно с общей информацией о типе с использованием ссылки; но это не обязательно).

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