Джексон, простая привязка данных с помощью JSON ... как это полезно ... что мне не хватает? - PullRequest
0 голосов
/ 07 декабря 2011

Когда я увидел, что с Джексоном можно выполнить простую привязку данных, я инстинктивно почувствовал, что это будет очень полезно. Перспектива отсутствия необходимости разрабатывать / создавать конкретные классы Java очень привлекательна. Но я не понимаю, как простое связывание данных действительно ускоряет процесс. Если вы в итоге наберете Map<String, Object>, тогда вам придется прыгнуть через достаточное количество обручей, чтобы вытащить эти данные с карты, не так ли?

Я, должно быть, что-то здесь упускаю, потому что мне кажется, что у вас возникает другая разновидность головной боли при разборе. Вместо того, чтобы вручную анализировать JSON или писать класс для полного связывания, вы тянете зубы с помощью всех видов приведения и т.д., чтобы получить правильные данные из Map.

Чего мне не хватает? Может кто-нибудь показать мне, где светит простое связывание данных?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

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

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

Хотя, если структура JSON известна во время компиляции, имеет смысл просто использовать полные данныепривязка (классы Java).

1 голос
/ 07 декабря 2011

Я не собираюсь утверждать, что это обычно проще (это не так), поэтому, если вы не видите смысла, не стесняйтесь полностью игнорировать этот стиль. Причина, по которой Джексон предлагает несколько моделей (привязка данных / нетипизированный, древовидная модель, потоковая передача), заключается в том, что они предлагают различные виды компромиссов; и нет необходимости использовать все из них, если один работает лучше для вас.

Но основной вариант использования, как я вижу, для простейшего кода, где все, что вы делаете, это извлекаете одно или два значения. Если это так, может показаться, что нет необходимости определять класс. Другой возможностью являются рекурсивные структуры данных.

И последняя причина, по-моему, состоит в том, что многие разработчики приходят из языков сценариев (perl, javascript), где принято иметь дело с «нетипизированными» объектами (в Perl «хэши»). Для них это может показаться наиболее естественным подходом, подобным тому, как они привыкли делать вещи.

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