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

XML и JSON - Преимущества и недостатки?

Недавно я слышал о JavaScript Object Notation (JSON), и, посмотрев его, кажется, что он становится довольно популярным как альтернатива расширяемому языку разметки (XML).

Я перешел на страницу this для получения дополнительной информации, но скорее это была страница XML-bashing, а не страница сравнения. Поэтому я подумал, что я должен спросить здесь:

Каковы преимущества JSON по сравнению с XML, и почему (если вообще) мы должны выбирать один за другим?

4b9b3361

Ответ 1

  • JSON более компактен и может быть легко загружен в JavaScript.
  • XML более строгий и поддерживает схемы и пространства имен.

На первый взгляд, JSON кажется превосходным во всех отношениях - он гибкий, компактный и во многих случаях более простой в использовании (особенно при работе с JavaScript), однако ему не хватает некоторых ключевых функций, в частности:

  • Поддержка схемы,

т.е. возможность для стороны A указать формат документа и возможность для стороны B проверить, что они поставляют то, что соответствует этому формату.

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

  • Поддержка пространства имен,

т.е. возможность смешивания данных, предназначенных для чтения несколькими источниками (или написанными несколькими источниками) в том же документе.

Примером этого в действии является протокол SOAP - пространства имен позволяют разделять данные SOAP "Конверт" или "Обертка", которые передаются наряду с сериализованными данными приложения. Это позволяет веб-фреймворкам обрабатывать и обрабатывать конверт SOAP, а затем передавать данные тела/полезной нагрузки в приложение.


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

Возможно, со временем эти функции появятся в JSON, но на данный момент XML является доминирующим форматом для таких вещей, как веб-сервисы и форматы файлов.

Ответ 2

Преимущества JSON

  • Меньший размер сообщения
  • Больше структурной информации в документе
    • Можно легко различить число 1 и строку "1" как числа, строки (и логические значения) представлены в JSON по-разному.
    • Может легко различать отдельные элементы и коллекции размером один (с использованием массивов JSON).
  • Легче представить нулевое значение
  • Легко потребляется JavaScript.

Преимущества XML

  • Пространства имен позволяют использовать стандартные структуры
  • Лучшее представление для наследования
  • Стандартные способы выражения структуры документа: XML-схема, DTD и т.д.
  • Стандарты анализа: DOM, SAX, StAX
  • Стандарты для запросов: XQuery и XPath
  • Стандарты для преобразования документа: XSLT

Draw

  • Человек, читаемый
  • Легко разобрать

Ответ 3

XML

  • Может иметь схему, в которой указан ее формат.
    • Это представляет интерес для людей с контролем качества. Вы можете доказать, что его формат соответствует ожидаемому, и поэтому вам, возможно, не нужно быть столь же пылким, как в противном случае вы могли бы проверить, что поле существует внутри него каждый раз, когда вы хотите ссылаться на него.
    • (Хотя это предполагает, что вы избегаете своего способа фактически проверить XML на его схему.)
  • Bloated; каждое имя поля должно быть выписано дважды в поле. Еа!

JSON

  • Гораздо менее раздутый, более легкий для анализа и, возможно, более читаемый человеком (если вы правильно его разместите).
  • Не так мощно: недостаточно выразительно выделять атрибуты из значений.

Ответ 4

Преимущества XML

  • Рядом с повсеместной поддержкой в ​​широком диапазоне языков и фреймворков. Скорее всего, там уже есть инструмент, который поможет вам извлечь информацию из ответа XML.

  • Он может придерживаться конкретной схемы, если так выберете. Как только он будет проверяться, вы можете сказать, что это правильно и начать синтаксический анализ.

  • Пространства имен позволяют разделить XML.

Преимущества JSON

  • Легкий по сравнению с XML. Меньше символов = меньшее время, проходящее через internet tubes.

  • Легче обращаться с Javascript, если вам что-то нужно для веб-приложения.

Ответ 5

JSON - меньше и может быть загружен в качестве объекта JavaScript (скорость - значение)

XML - по-прежнему стандартный, однако старше (медленнее, больше, но не только JS)

Ответ 6

JSON - это гораздо более простой формат, чем XML. JSON предназначен только для описания данных как иерархии объектов, в то время как XML имеет много других функций.

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

Если вам нужен более мощный способ описания ваших данных, вам понадобится XML, поскольку JSON просто ничего не делает.

Ответ 7

Они одинаково выразительные форматы. JSON менее подробный. JSON легко анализируется в JavaScript (и других языках), и XML легко анализируется многими вещами.

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

Ответ 8

Меньше verbose- XML использует больше слов, чем необходимо

JSON - это faster- программа для анализа XML, она медленная и громоздкая. Многие из этих библиотек манипулирования DOM могут привести к тому, что ваши приложения будут использовать большие объемы памяти из-за многословности и стоимости анализа больших файлов XML.

Структура моделей данных JSON соответствует данным: структура данных JSON - это карта, а XML - это дерево. Хотя карта (только пары ключ/значение) может быть ограничивающей, это то, что мы хотим, потому что ее легче интерпретировать и она предсказуема.

В коде: элементы представлены в коде одинаково. Во многих языках, особенно в динамических, вы можете просто "хлебнуть" в JSON, и у вас сразу появится объект вашего домена. Легко перейти от объектов в JSON к объектам в коде, потому что они выровнены. При переходе от объектов в XML к объектам в коде они не выравниваются, и существует много возможностей для интерпретации.

JSON ограничивает, но это хорошо: JSON ограничен с точки зрения того, какие объекты можно моделировать. Некоторые могут подумать, что XML лучше, потому что можно моделировать больше объектов, и это не запрещает разработчикам. Но несмотря на то, что JSON запрещает разработчикам, это положительно, делая код более простым, более предсказуемым и легким для чтения. XML можно отформатировать так, чтобы он выглядел и функционировал так, как хочет компания, но разработчикам трудно читать, понимать и преобразовывать. В большинстве случаев люди считают, что XML лучше, потому что разработчики могут делать все что угодно, но в эпоху упрощения, чем меньше, тем лучше, что делает JSON лучшей альтернативой.