Подтвердить что ты не робот

Сериализация Java против JSON против XML

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

Я знаю, что большую часть времени мы используем JSON или XML для AJAX, так как формат передачи в значительной степени отличается от формата Javascript, а плюс JSON довольно легким с небольшим размером, поэтому Java сериализация полностью вне таблицы?

4b9b3361

Ответ 1

В общем, важный вопрос заключается в том, какой клиент получит сериализованные объекты - браузеры/механизмы JavaScript, такие как (node-js), клиент Java, неизвестные/несколько клиентов.

JSON - Синтаксис JSON - это, по сути, JavaScript, и поэтому любой компонент с механизмом JS будет очень хорошо справляться с его синтаксическим анализом - даже сложные структуры данных будут эффективно преобразованы в "живые" объекты. Парсеры JSON существуют практически для любого языка, и его легко использовать, даже если не используется движок JS (например, Google Gson, который может легко преобразовывать JSON в соответствующие объекты), что делает его хорошим кандидатом для межъязыкового общения - например, в архитектуре обмена сообщениями.

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

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

Еще одно замечание - Сериализация в целом имеет свои накладные расходы. Однако, когда связь осуществляется по сети, узким местом часто является сеть, а не сама сериализация/десериализация.

Ответ 2

Я думаю, это зависит. Если вы отправляете HTTP-запрос или что-то, то JSON или XML, очевидно, хороший выбор. Если вы просто отправляете объект java через tcp-сокет для какого-либо распределенного алгоритма или что-то, что я думаю, что сериализация java проще/лучше

Ответ 3

В то время как сериализация по сети будет работать как xml, так и json. Это зависит от потребителя этой информации.

  • Если потребитель является браузером, использующим Ajax, чтобы запросить некоторую информацию и отобразить что-то на экране, как правило, Джейсон является лучшим вариантом, поскольку он уже находится в формате Javascript, и нет никаких накладных расходов на преобразование в объекты, совместимые с Javascript. На самом деле многие библиотеки Ajax (например, jQuery) имеют хорошую поддержку json.

  • Если вы являетесь другим приложением, которое может быть или не быть в java, то xml является предпочтительным механизмом сериализации. Веб-службы используют xml очень сильно.

  • Если ваш потребитель - другая Java-программа, то определенная java-сериализация является предпочтительной опцией (например, RMI). Так что его еще нет:-).

Но да, есть размытая линия между XML и Json. То, что я упомянул здесь, - это общая практика. Вот хорошая статья, ставя весь аспект в xml vs jason.

Ответ 4

Я думаю, что разработчик не должен заботиться о сериализации объектов Response. но если мы рассмотрим JSON, у него есть достойные преимущества для выбора над XML.

  • JSON Response не нуждается в закодированном ответе, в отличие от XML.
  • обработка и обработка JSON быстрее по сравнению с XML, поскольку он не анализируется.
  • Ответ XML для AJAX всегда кодируется, поэтому обработка занимает время.
  • JSON лучше всего подходит для JQuery для кодирования UI и работает быстрее.
  • Обработка огромных данных Например: выбор данных индексирования на/с сервера, обработка JSON выполняется быстрее.