Pull to refresh

JSON vs. XML

Reading time2 min
Views2.4K
Для меня скорее это не противостояние, а выбор более подходящего и удобного вида обмена данными между клиентом и сервером, для кого-то этот выбор может быть совершенно другим…

Так как на клиенте я часто (90%) использую JavaScript, то JSON является моим де-факто! Кто он за зверь?

JavaScript Object Notation json.org — объектная нотация (описание объектов) в JavaScript. На сайте можно почитать его полное опеределение или, в крайнем случае, на ru.wikipedia.org/wiki/JSON

Почему именно JSON?
  • Родное описание объектов для JavaScript, которое преобразуется в объект одной функцией eval. Для более безопасной обработки можно использовать специальную библиотеку json.org/json.js
  • Поддержка всех основных типов данных, которые могут легко сеарилизованы (преобразованы) из любого языка программирования
  • Минимальное семантическое представление, что позволяет в разы снизить размер ответа сервера, а следовательно, и нагрузку на него.


Пример преобразования из PHP
$data = array( 'a' => 'hello', 'b' => 100, 'c' => array( 'd' => 'planet', 'longstring' => 'oops' ) );

* This source code was highlighted with Source Code Highlighter.


в XML (84 байт):
<data><a>hello</a><b>100</b><c><d>planet</d><longstring>oops</longstring></c></data>

* This source code was highlighted with Source Code Highlighter.


в JSON (60 байт):
{"a":"hello","b":100,"c":{"d":"planet","longstring":"oops"}}

* This source code was highlighted with Source Code Highlighter.


Из этого следует, что в JSON мы экономим 24 байта трафика, а это составляет 28.57% от XML трафика в этом частном случае.

Конечно, в JSON нет таких вещей как XPath, XSLT, XQuery, XLink, XPointer. В JSON нет атрибутов. И для русского языка лучше в JSON использовать utf8. Но для JavaScript он идеален, так как JSON сам по себе является JavaScript.
Tags:
Hubs:
Total votes 16: ↑8 and ↓80
Comments110

Articles