Разбираем Json с использованием интерфейсов с помощью jackson

У меня есть интерфейс на java, и я хочу использовать его для разбора json. Например, рассмотрим интерфейс:

interface Student {
  String getName();
  int getId();
}

И с json вроде:

{"id":1, "name" = "jon"}

Я хочу проанализировать этот json, используя только интерфейс. Существует несколько конкретных реализаций этого класса, и классы реализации имеют намного больше полей, чем в json, поэтому я не хочу использовать эти классы. Я знаю, что могу добиться этого, используя прокси-серверы Dynamix в java, определив свои собственные обработчики вызовов. Но есть ли что-то встроенное в Джексон для этого?

Заранее спасибо.

Может быть та же проблема, что и Как добавить собственный десериализатор в интерфейс с помощью jackson

Thomas Fritsch 08.06.2018 22:26

Почему это та же проблема? Решение требует изменений в реализации классов, в то время как я искал способ десериализации с использованием интерфейса, не меняя вообще реализующие классы. Не уверен, почему этот вопрос был отклонен.

Aarkan 08.06.2018 22:39

Я только сказал может быть, это та же проблема *. И, кстати, я не голосующий против.

Thomas Fritsch 08.06.2018 23:12
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
429
1

Ответы 1

Джексон должен иметь возможность создавать объекты из JSON, но интерфейс не может быть создан, поэтому это невозможная проблема (помимо некоторого взлома прокси). Если вы хотите десериализовать общий объектный класс, просто измените интерфейс на класс.

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

Deadron 10.12.2020 02:14

Другие вопросы по теме