Подтвердить что ты не робот

Каковы преимущества и недостатки json vs xml для запросов ajax?

В чем преимущества и недостатки json vs xml для запросов ajax? Есть ли разница в производительности? то есть браузеры могут обрабатывать один формат быстрее, чем другой?

4b9b3361

Ответ 1

Таким образом, JSON (который можно рассматривать как подмножество JavaScript) намного компактнее XML. Это имеет несколько положительных побочных эффектов

  • JSON меньше соответствующего XML
  • JSON быстрее, т.е. более простой синтаксис -> более простой синтаксический анализ (более быстрый синтаксический анализ)

В моем первоначальном ответе на этот вопрос мой взгляд на JSON был на JavaScript, я считал его близким родственником. Но JSON - это нечто независимое и JSON.org отлично справляется с описанием JSON. Он также предоставляет библиотеку совместимости для JavaScript, которая добавляет поддержку JSON.parse и JSON.stringify, если она не поддерживается браузерами.

В то время как eval в то время (в середине 2009 года) использовался для оценки JavaScript, он также мог бы оценивать JSON, то есть анализировать JSON, но считался небезопасным, поскольку он позволял произвольному JavaScript выполнять вместо него.

JSON просто очень подходит для браузеров и естественным образом развивает платформу благодаря своей тесной связи с JavaScript.

В то время как XML может считаться более строгим из-за того, что вы можете ввести его, это также те вещи, которые делают его намного медленнее (на мой взгляд это также немного многословно). Но если это то, что вы действительно хотите, вы должны использовать его, XML равновероятен.

Я не буду вступать в дискуссию по динамическому или статически типизированному, но я скажу это. Очень просто добавить материал поверх данных без схемы, и есть много способов сделать проверку, независимо от схемы или схемы.

Ответ 2

Одно из преимуществ XML, которое я не видел в обсуждении, заключается в том, что XML может иметь схему. Это имеет большое значение при описании структуры XML. Для простой структуры данных JSON и немного текста, описывающего, что вы делаете, в порядке. При работе с более сложными структурами данных или когда создатель и потребители данных не являются одной и той же командой, использование схемы может очень сильно помочь связи.

Кроме того, наличие схемы означает, что вы можете проверить свои данные, что может быть спасением жизни при попытке отладить ошибки в сложных...

Ответ 3

У вас есть в этой статье " Ответ AJAX: XML, HTML или JSON?" полная дискуссия по этой теме:

XML

  • Преимущества
    Наиболее важным преимуществом XML является то, что он является наиболее легко читаемым форматом для других людей.
    Второе преимущество заключается в том, что XML существует довольно давно и что многие разработчики уже привыкли к этому.
  • Недостатки
    JavaScript, необходимый для вставки данных в HTML-страницу, довольно многословный.

JSON

  • Преимущества
    Наиболее важным преимуществом является то, что JSON обходит политику JavaScript с одинаковым исходным кодом, если вы импортируете JSON файл в качестве нового тега <script>. См. пример Саймона Уиллисона для деталей gory.
    JavaScript не позволяет вам получать доступ к документам (будь то XML или HTML), которые поступают с другого сервера. Однако, если вы импортируете JSON файл в качестве тега script, вы обойдете эту проблему, и любые данные JSON могут быть импортированы на любой веб-сайт. Это зависит от ваших бизнес-целей: хорошо это или плохо, но сейчас это единственный формат данных, который позволяет неограниченный доступ. Второе преимущество заключается в том, что скрипты для данных JSON немного проще и немного больше соответствуют остальной части языка JavaScript, чем скрипты для данных XML.
  • Недостатки
    Самым важным недостатком JSON является то, что формат очень трудно читать для людей, и что, конечно, каждая отдельная запятая, цитата и скобка должны быть в правильном месте. Хотя это справедливо и для XML, JSON-сумбура сложного вида синтаксиса, например}}]} в конце фрагмента данных, может напугать новичков и сделать сложную отладку.

Из комментариев JSON считается быстрее обрабатывать, чем XML.

Ответ 4

Одно из преимуществ XML, о котором еще не упоминалось, заключается в том, что можно использовать XSLT для извлечения данных из XML-документа с использованием произвольно сложных выражений XPath. Я не вижу способа сделать это в JSON. Как вы найдете все объекты в документе JSON, которые содержат поле "валюта" в качестве прямого потомка, независимо от того, где объекты происходят в структуре? В XML с XSLT/XPath это очень просто.

Однако выполнение этого в браузере происходит по цене. Вы столкнетесь с специфическими особенностями браузера, и, вероятно, это будет медленнее и интенсивнее.

Ответ 5

Пока я люблю Json и рекомендую его, я думаю, что нет принципиальной разницы между оптимальной скоростью обработки. Различия между библиотеками и платформами более значительны: хороший XML-парсер быстрее, чем плохой json-парсер и наоборот. Поэтому обычно производительность самих форматов не является большим фактором. Оба могут быть быстро освещены (у Java есть несколько хороших парсеров для обоих, например, для других языков тоже).

Что касается компактности, то это зависит от типа данных, Json часто немного компактнее, но не так радикально. Если у вас много массивов/списков, где json notation "{...}" гораздо более компактна, чем тег xml (если вы не используете пустое пространство, если это возможно, например "1 2 3 4" ).

Ответ 6

Возможно, вы захотите прочитать JSON: альтернатива без жира для XML. С JSON вы можете обманывать обратными вызовами между исходным кодом и пунктом назначения запроса и фактически использовать его безболезненно в существующем коде Javascript.

Ответ 7

Ссылка dirkgently обеспечивает хороший обзор различий (прокрутите вниз). Важные моменты:

JSON: меньше, может представлять все символы Unicode (xml не может быть в UTF8, по крайней мере, по собственной спецификации). Его также тривиально использовать в приложениях AJAX (из-за функции javascript eval()), особенно более продвинутые функции, такие как jsonp (ответы вызываются обратные вызовы).

XML: имеет множество инструментов, облегчающих запрос структуры. С его более старой и более установленной, она также имеет больше поддержки инструмента в целом.

В общем, они могут выполнять одни и те же вещи (вы могли бы сделать jsonp через xml, он просто потребовал бы ручного разбора обратного вызова).

Ответ 8

Я думаю, что еще одно преимущество Json заключается в том, что он не использует < > скобки, и вы можете поместить в него html-код без большой путаницы.

Ответ 9

JSON легкий, AJAX дружественный (рассматривается как подмножество Javascript) и легко сериализуемый. XML делать все это, но после употребления молока.