CSS властивості
ГлавнаяJSONJSON та XML

JSON та XML

200

Багато розробників порівнюють JSON з XML під час створення програм, які обмінюються даними між різними системами, особливо в Інтернеті. Це часто перетворюється на суперечку «JSON проти XML», оскільки кожна сторона захищає свій кращий формат. . Все залежить від мети.

Давайте спочатку розглянемо приклад документа на JSON та XML, що містить однакові дані.

Приклад на JSON

Ось деякі дані, що містяться в JSON-документі.

<code data-language="javascript">{ "artists" : [ { "artistname" : "Deep Purple", "formed" : "1968", "albums" : [ { "albumname" : "Machine Head", "year" : "1972", "genre" : "Рок" }, { "albumname" : "Stormbringer", "year" : "1974", "genre" : "Рок" } 
] } 
] }

Приклад на XML

Ті ж дані, що містяться в XML-документі.

 <code data-language="html"><artists> <artistname>Deep Purple</artistname> <formed>1968</formed> <albums> <album> <albumname>Machine Head</albumname> <year>1972</year> <genre>Рок</genre>
</album> <album> <albumname>Stormbringer</albumname> <year>1974</year> <genre>Рок</genre>
</album>
</albums>
</artists>

Навчаність

XML заснований на тегах, тому його легше вивчити тим, хто звик до мов розмітки, таким як HTML або ColdFusion. Однак подібне твердження можна сказати і на користь JSON для тих, хто знайомий із програмуванням на JavaScript або Сі. Будь-кому, хто зазнає складнощів у розумінні синтаксису XML або JSON, навряд чи буде зручно працювати з будь-якою мовою програмування або мовою розмітки. Проте, за допомогою JSON можна багато чому навчитися — простота одна з сильних його сторін. XML, з іншого боку, містить правила, що стосуються чутливості до регістру, що закривають тегів, атрибутів та ін. Тому для більшості людей, ймовірно, потрібно більше часу для вивчення XML. Крім того, як тільки ви відійдете від простого обміну даними, XML виявиться набагато більше, ніж здається на перший погляд. швидше за все, призведе до збільшення розміру файлу. Що може легко вплинути на час, потрібний для передачі файлу (особливо якщо це великий файл і він передається по Інтернету). Частково це правда, хоча більшість розвинених розробників використовують програмне забезпечення, яке автоматично закриває для них теги. Так що в подібних випадках це не є проблемою.

Метадані

Однією з більших переваг XML у порівнянні з JSON є метадані. У XML ви можете використовувати атрибути для зберігання метаданих, а самі атрибути можуть розміщуватися всередині елемента і зберігати більше інформації про цей елемент.

Наприклад, ви можете зробити щось подібне до цього.

<code data-language="html">... <album albumnumber="6"> ...

Хоча є можливість представити метадані в JSON, наприклад, перетворивши сутність на об'єкт, а потім додавши метадані у вигляді елементів в об'єкті, це не так витончено, як підхід XML.

Читабельність

Браузери, як правило, відображають XML так, щоб людині було легше її читати. Читач може відразу побачити ієрархічну структуру, а також розгорнути і згорнути будь-який елемент у дереві. Наприклад, ось це дослідження — Comparison of JSON and XML Data Interchange Formats: /a> [PDF] з Університету штату Монтана.

Ось також цікава стаття, в якій порівнюється продуктивність між XML, JSON, CSV та Protocol Buffers за допомогою різних парсерів. JSON, схоже, має перевагу над XML у різних тестах продуктивності.

Мета

JSON і XML служать двом різним цілям. його мета — полегшити обмін структурованими даними. Це досягається шляхом безпосереднього представлення об'єктів, масивів, чисел, рядків та логічних значень, які часто присутні у вихідному оточенні та в місці призначення. Незважаючи на те, що XML легко вивчити для обміну даними, можна дізнатися набагато більше, якщо ви хочете навчитися використовувати XML як мову розмітки. Наприклад, вам необхідно дізнатися, як створити визначення типу документа, як використовувати XSLT для перетворення документів XML в іншу форму і як запитувати XML-документи за допомогою XPath.

Висновок

Отже, JSON і XML обидва підходять для обміну даними. Що ви використовуєте, залежить від ситуації.

JSON, безумовно, має перевагу в більшості випадків, але ви можете зіткнутися з ситуаціями, коли XML виявляється більш підходящим технологією для роботи.

Тем не менш, популярність JSON зростає, і він, безумовно, замінює XML як кращий формат обміну даними по мережі.

Крім того, це не єдині формати обміну даними, наприклад, існують інші формати, такі як Protocol Buffers. Залежно від ситуації, CSV може бути навіть кращим форматом для роботи.