Для меня скорее это не противостояние, а выбор более подходящего и удобного вида обмена данными между клиентом и сервером, для кого-то этот выбор может быть совершенно другим…
Так как на клиенте я часто (90%) использую JavaScript, то JSON является моим де-факто! Кто он за зверь?
JavaScript Object Notation json.org — объектная нотация (описание объектов) в JavaScript. На сайте можно почитать его полное опеределение или, в крайнем случае, на ru.wikipedia.org/wiki/JSON
Почему именно JSON?
Пример преобразования из PHP
в XML (84 байт):
в JSON (60 байт):
Из этого следует, что в JSON мы экономим 24 байта трафика, а это составляет 28.57% от XML трафика в этом частном случае.
Конечно, в JSON нет таких вещей как XPath, XSLT, XQuery, XLink, XPointer. В JSON нет атрибутов. И для русского языка лучше в JSON использовать utf8. Но для JavaScript он идеален, так как JSON сам по себе является JavaScript.
Так как на клиенте я часто (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.