XML vs JSON: или как общаются современные веб-приложения между собой 6

Posted by dobrych Tue, 13 Nov 2007 22:53:00 GMT

Хочется высказать свою активную позицию насчет форматов передачи сообщений между приложениями в веб-среде. Или можете считать это просто настойчивым советом, особенно относящемуся к начинающим веб-разработчикам. Итак, что использовать? XML или JSON?

Общение (обмен сообщениями, если хотите) современных веб-приложений очень актуальная тема. В связи с появлением веб-сервисов в прошлом и огромным ростом популярности сложных (rich) интерфейсов в настоящем, появляется потребность в удобном и легком способе передачи данных между приложениями. Чаще всего подразумевается общение клиента и сервера. Частные случаи: всем полюбившийся Ajax, Flash/Flex приложения с динамическим контентом, API для публичных сервисов.

JSON Rulez Так вот исторически сложилось что для этих задач использовался изначально XML, как универсальный способ описания любых данных. Но позже появился новый (популярный сегодня) формат – JSON. Про сам формат вы можете почитать в инете, благо информации достаточно. А вот свои субъективные плюсы и минусы я напишу ниже.

Плюсы JSON по сравнению с XML:

  • быстрее парситься;
  • легче визуально воспринимается;
  • нативно интегрирован в JavaScript (читай Ajax);

К этому списку могу добавить отрывки личного опыта. С парсингом и валидацией XML есть достаточно много проблем, зависящих от библиотеки с которой вы работаете. Сериализация данных в JSON обычно в коде занимает меньше места, чем кодирование сериализации в XML. Интересным практичным моментом есть именно разработка Ajax интерфейсов, где JSON сокращает JS код. Большим плюсом к этому является возможность использования того-же протокола не только Ajax-ом, но и например Flash/Flex приложением или сторонним сервисом как API.

Вывод. Я считаю, что XML на самом деле не так уж плох и для общения между приложениями, но он лучше подходит для хранения сложно структурированных данных. А вот большим плюсом JSONа как раз является сокращение времени на разработку базового веб-приложения и его дальнейшей быстрой интеграции с другими разнородными приложениями. Еще проще говоря, если вы собираетесь заняться изучением или сразу использованием Ajax в своих проектах, обратите внимание на JSON и сэкономьте свое время.

PS о недостатках. Посмотрите статью Tim Bray и Don Box по теме.

NO XML

Trackbacks

Use the following link to trackback from your own site:
http://livedev.org/trackbacks?article_id=xml-vs-json-or-modern-webaaps-communiction&day=14&month=11&year=2007

Comments

Leave a response

  1. Avatar
    Alexander Solovyov about 10 hours later:

    На тему сериализации - у JSON'а меньше гибкости, в XML можно гораздо более разнообразные данные запихнуть. Во всяком случае, это говорит опыт общения с сериализаторами на питоне.

    Так что пока это AJAX - то JSON просто супер, но если придётся что-то делать с обменом сложными данными... Ну, панацеи от всего не бывает. :-)

  2. Avatar
    DM about 14 hours later:

    Ну для сложно структурированных данных можно извратнуться и сделать serialize вовнутрь переменной и потом все это добро JSONом отдать. Но в принципе данные можно представить как массив. А соответственно его можно упаковать в JSON. Вроде бы =)

  3. Avatar
    Денис Лозко about 23 hours later:

    нативно интегрирован в JavaScript (читай Ajax);

    Вообще-то это и есть JS.

  4. Avatar
    dobrych about 24 hours later:

    Вообще я хотел подчеркнуть, что начинающим веб-разработчикам можно везде использовать JSON, он покроет 98% процентов потребностей. Ну а когда есть опыт советы особо не нужны ;-)

    2Денис. Цитата с википедии: "Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается языконезависимым и может использоваться практически с любым языком программирования"

    Так что на практике это javascript, но в теории совершенно независимый формат данных.

  5. Avatar
    Денис Лозко 1 day later:

    А я и не говорил, что он не есть назависимым.

    Я имел в виду, что он не интегрирован в JS, а собственно является его частью, потому как это его объктная нотация.

    PS: у вас в блоге та же болезнь -- не сохраняется email

  6. Avatar
    Денис Радченко 4 months later:

    Вы еще не учли, что JSON - это переменные, а XML - структура данных. Т.е. JSON более нативен для программы, хоть и менее гибок. В PHP я лучше вызову json_decode(), чем мучиться с разбором XML файла.

Comments