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

Являются ли JSON и XML Comparable?

Я слышал, что кто-то сказал, что "JSON - это то же самое, что и XML". Являются ли JSON и XML сопоставимыми? Каковы основные сходства и различия в каждом из них?

Есть несколько StackOverflow Q & As, которые касаются сравнения JSON и XML [1] [2] [3] [4] [5] [6] [7], но ни одна из них не дает хорошую, единственную точку отсчета, ориентированную на их основные сходства и различия.

4b9b3361

Ответ 1

Что такое JSON?

JSON (обозначение объекта JavaScript) is a lightweight text-based open standard designed for human-readable data interchange. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers.

Заимствование образца JSON из Википедии, представление JSON человека может выглядеть так:

{
    "firstName" : "John",
    "lastName"  : "Smith",
    "address"   :
    {
        "street": "21 2nd Street",
        "city"  : "New York",
        "state" : "NY",
        "zip"   : "10021"
    },
    "phoneNumber":
    [
        {
            "type"  : "home",
            "number": "212 555-1234"
        },
        {
            "type"  : "fax",
            "number": "646 555-4567"
        }
    ]
}

Что такое XML?

XML (расширяемый язык разметки) is a simple, very flexible text format derived from SGML. Согласно Wikipedia, XML a set of rules for encoding documents in machine-readable form. [... It goals] emphasize simplicity, generality, and usability over the Internet. It is a textual data format[...].

Снова заимствуя образец XML из Википедии, XML-представление человека может выглядеть так:

<person firstName="John" lastName="Smith">
    <address street="21 2nd Street" city="New York" state="NY" zip="10021" />
    <phoneNumber type="home" number="212 555-1234" />
    <phoneNumber type="fax"  number="646 555-4567" />
</person>

Сравнение

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

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

Хотя это может быть немного предвзято, The Fat-Free Alternative to XML с сайта JSON содержит несколько хороших точек сравнения. Существуют также записи XML vs JSON !!! Dont compare. и JSON Pros and Cons с некоторыми пулевыми точками для сравнения.

Сходства

  • Может использоваться для обмена текстовыми данными; нет неясного формата, который нелегко читается людьми.
  • Позволяет представлять данные структурированным образом, обеспечивая уровень отношений данных.
  • Интернационализация с использованием Unicode.
  • Агностик языка программирования; может использоваться во многих языках программирования.
  • Может использоваться для сопряжения гетерогенных систем; до тех пор, пока все системы используют согласованный договор представления данных, возможна связь между гетерогенными системами.
  • Открытые стандарты; членство в любом руководящем органе не требуется для получения спецификаций (JSON определен в IETF RFС# 4627, а XML определяется как Спецификация W3C), и нет никаких ограничительных лицензий (JSON, XML).

Различия

  • JSON имеет простую нотацию, которая может быть быстро принята разработчиками.
  • Легкий вес JSON придает ему более высокий уровень удобства работы в Интернете, уменьшая узкие места производительности.
  • Простое обозначение JSON, заимствованное из JavaScript, упрощает и улучшает представление/преобразование представления данных в общие структуры данных.
  • JSON доступен в ECMAScript, 5th edition, что делает его доступным для всех приложений (в частности, веб-браузеров) со встроенным движком ECMAScript.
  • XML - это документ язык разметки, предоставляющий семантику, которая дает дополнительное значение для данных; JSON не обладает этой способностью.
  • XML имеет более широкий спектр спецификаций, охватывающих схемы для определения и проверки данных namespaces, stylesheets, , выражения данных и многие другие.
  • XML был дольше и широко принят многими компаниями; предоставляя ему большую документацию, поддержку языка программирования, поддержку инструментальных средств, опыт сообщества, готовые продукты и т.д.
  • XML надежные стандарты делают его лучшим решением для гибкого (или иногда жесткого... в выгодном смысле) взаимодействия между бизнесом.

Ответ 2

Вот набор аналогичных отношений, которые можно использовать для преобразования из XML в JSON:

  • Корень node представлен объектом верхнего уровня
  • Набор атрибутов childnodes plus представлен массивом
  • Каждый дочерний элемент представлен строковым именем со значением Object
  • Каждый атрибут представлен строковым именем со строковым значением
  • Элементы, которые могут отображаться более одного раза, преобразуются в свойства массива.
  • Текстовые значения тегов представлены префиксным именем String со значением String
  • Узлы комментариев объединены с ближайшим значением String плюс разделители 22

Вот набор аналогичных отношений, которые можно использовать для преобразования из JSON в XML:

  • Объект верхнего уровня представлен корнем node
  • Массив представлен набором дочерних элементов на оси дочерних узлов
  • Имя строки со значением Object представлено объектом элемента
  • Имя строки со значением String представлено сущностью атрибута
  • Имена строк, префиксы которых преобразуются в текстовые узлы родительского элемента

Ссылки