JSON: «Обезжиренная» альтернатива XML
Расширяемый язык разметки (Extensible Markup Language — XML) — текстовый формат, производный от SGML (Standard Generalized Markup Language — Стандартный обобщённый язык разметки). В сравнении с SGML, XML довольно прост. Но HTML (HyperText Markup Language — Язык гипертекстовой разметки) ещё проще, если продолжать сравнение. При этом, хорошее справочное пособие по HTML в дюйм толщиной. Ведь форматирование и структурирование документов — сложный процесс.
Наибольшее воодушевление вызвали новые возможности формата XML в плане представления данных — их обмена и дробления (сериализации). У языка представления данных XML есть два огромных преимущества:
- Он текстовый.
- Он позиционно-независимый.
Единство этих факторов обеспечило ему большую, чем у других допускающих обмен данными форматов, универсальность применения. XML изначально был W3C-стандартизован, и больше, вроде бы, было не к чему стремиться (по крайней мере, на первый взгляд).
XML, увы, не вполне пригоден к работе с заменяемыми данными — с таким же успехом можно гаечным ключом ввинчивать гвозди. Он слишком громоздкий и не соответствует модели данных большинства языков программирования. Первое знакомство с XML потрясло большинство программистов его убожеством и слабостью возможностей. То первое их впечатление оказалось верным. Другая система представления текстовой информации имеет те же преимущества, что XML, но гораздо лучше справляется с обеспечением обмена данными. Эта система — формат обмена данными на основе JavaScript — JSON (JavaScript Object Notation).
Наиболее авторитетные мнения об XML (например, на странице xmlsuck.org) сводятся к тому, что у XML, как допускающего обмен данными формата, масса недостатков, но их восполняют такие его достоинства как гибкость во взаимодействии и открытость.
JSON, при наличии тех же гибкости во взаимодействии и открытости, лишён названных недостатков.
Давайте сравним XML с JSON по признакам, являющимся в глазах XML-сообщества ценными свойствами.
Источник: www.simonstl.com/articles/whyxml.htm
Простота
XML проще, чем SGML, но JSON гораздо проще XML. JSON намного компактнее в плане грамматики и точнее преобразует структуры данных, задействуемые современными языками программирования.
Расширяемость
JSON — нерасширяемый формат, потому что не нуждается в этом. JSON не является языком разметки документов, так что, для представления данных может обходиться без задания новых тегов или свойств.
Гибкость взаимодействия
JSON имеет те же потенциальные возможности гибкого взаимодействия, что XML.
Открытость
JSON ничуть не уступает XML в плане открытости, пожалуй, даже превосходит, поскольку вокруг него не кипят страсти корпоративных/политических баталий на почве стандартизации.
Источник: www.karto.ethz.ch/neumann/caving/cavexml/why_xml.html
Краткое перечисление преимуществ XML.
XML понятен человеку при чтении.
JSON читается человеком гораздо легче, чем XML. И писать на нём легче. Машинам читать и писать на нём тоже легче.
XML может служить обменным форматом, позволяя пользователям перемещать их данные между схожими приложениями.
К JSON это тоже относится.
XML выстраивает данные в структуру, повышая их информативность.
К JSON это тоже относится.
XML лёгок в обработке, благодаря простоте и стандартизованности структуры данных.
JSON обрабатывается ещё легче, потому что его структура проще.
Для работы с XML программистам доступен широкий спектр ПО многоразового применения, так что, им не приходится заново компилировать кодовую основу.
JSON, будучи более простой системой условных обозначений, требует привлечения специализированного ПО в гораздо меньшем объёме. В языковой среде JavaScript и Python система представления данных JSON встроена в сами языки программирования; дополнительное ПО не нужно вовсе. В других языковых средах требуется лишь немного специализированной JSON-кодировки. Например, программный пакет из трёх простых классов, обеспечивающий читаемость JSON в Java, можно бесплатно получить на странице JSON.org.
XML отделяет представление данных от структуры этих данных.
XML требует перевода структуры данных в структуру документа. Такое преобразование бывает сложно выполнить. JSON-структуры состоят из массивов и строк. В них заложены данные. XML-структуры состоят из элементов (в том числе, вложенных), атрибутов (ни в коем случае не вложенных), собственно текстового наполнения, сущностей, DTD-фрагментов и прочих мета-структур.
Общий формат обмена
Формат JSON лучше для обмена данными. Формат XML лучше для обмена документами. Задействуйте инструмент, подходящий именно в вашем случае.
Вариативность отображения одних и тех же данных
JSON не предоставляет вам выбор способов отображения данных, не являясь языком разметки документов.
Источник: www.softwareag.com/xml/about/xml_why.htm
Самоописание данных
Общая черта XML и JSON.
Полная интеграция всех привычных баз данных и форматов
(Возможности XML иногда преувеличиваются авторами). XML-документы могут содержать данные любого мыслимого типа — от классического варианта, то есть, текстов и чисел, или мультимедийных объектов, например, звуков до активных форматов — Java-апплетов и ActiveX-компонентов.
У JSON нет функции <[CDATA[]]>, поэтому он не вполне годится на роль носителя звуковой или графической информации, либо другой бинарной нагрузки большого объёма. JSON оптимизирован под представление данных. Кроме того, допуск исполняемых программ в систему обмена данными мог бы создать большую угрозу безопасности.
Локализация
XML и JSON оба используют Unicode.
Открытость и расширяемость
Уникальность открытого строения XML позволяет вам добавлять по мере необходимости другие новейшие элементы. То есть, вы всегда можете приспособить вашу систему к восприятию специальной терминологии.
Эти словари специальной лексики можно автоматически переводить в JSON, целенаправленно отказываясь от XML в пользу JSON.
Источник: www.xmlspy.com/manual/whyxml.htm
XML легко читается как человеком, так и машиной.
JSON как человеку, так и машине читать ещё легче.
Язык XML объектно-ориентированный
XML, вообще-то, ориентирован на обработку документов. JSON ориентирован на обработку данных. JSON легче приспособить к объектно-ориентированным системам.
XML получил широкое распространение в сфере компьютерных технологий
JSON пока ещё только заявляет о себе. Его простота и лёгкость перехода с XML на JSON делают JSON явно более приемлемым вариантом.
Update: Господа, не забывайте что это перевод.
Автор: JustRamil