2016-03-18 1 views
1

Я хочу написать собственный десериализатор JSON для моего проекта, я не хочу разбирать весь документ в десериализаторе, только часть, на которую я хочу использовать настраиваемый десериализатор.Как использовать пользовательский Jackson JsonDeserializer <T> класс на конкретном объекте в структуре JSON?

Это JSON Я хотел бы разобрать: http://pastebin.com/mkHy0Gj6

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

Вот моя текущая реализация: http://pastebin.com/dePz0QFJ

+1

Почему вы хотите написать собственный десериализатор? Это кажется, на первый взгляд, легко десериализуемым с использованием привязки данных – beresfordt

+0

Я не могу опубликовать точный JSON, с которым я работаю, так как он получил некоторые из моих сведений об этом, я пытаюсь разобрать что-то из API Steam на самом деле. Такова структура того, что я пытаюсь разобрать через десериализатор. –

ответ

0

Вы можете добавить аннотацию

@JsonIgnoreProperties(ignoreUnknown = true)

к пользовательскому десериализатору и он будет игнорировать все, кроме полей, которые вы выбираете для десериализации.

+0

Это не работает, это то, что у меня есть до сих пор ... http://pastebin.com/dePz0QFJ Я получаю эту ошибку: «com.fasterxml.jackson.databind.JsonMappingException: имя корня« имя » не соответствует ожидаемому («JsonNode») для типа [простой тип, класс com.fasterxml.jackson.databind.JsonNode] » –

+0

Как вы ожидаете получить имя, когда имя вложено внутри объекта ответа? – hofan41

+0

Вам нужно зайти в объект ответа, массив событий, перебрать массив событий, чтобы распечатать каждое имя. – hofan41

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