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

Обязательно: это взломать: CSS не подходит для этого, но в некоторых ситуациях - например, у вас есть сторонняя библиотека в iframe, которую можно настроить только с помощью CSS - такой взлом единственный вариант.

Вы можете заменить текст через CSS. Давайте заменим зеленую кнопку «hello» красной кнопкой, которая говорит «до свидания», используя CSS. Смотрите http://jsfiddle.net/ZBj2m/274/ для живой демонстрации:

Вот наша зеленая кнопка:



button {
  background-color: green;
  color: black;
  padding: 5px;
}

Теперь давайте спрячемся исходный элемент, но потом добавьте еще один элемент блока:

button {
  visibility: hidden;
}
button:after {
  content:'goodbye'; 
  visibility: visible;
  display: block;
  position: absolute;
  background-color: red;
  padding: 5px;
  top: 2px;
}

Примечание:

  • Мы явно должны отметить это как элемент блока, после того, как элементы «span» по умолчанию
  • Нам нужно компенсировать исходный элемент, отрегулировав положение псевдоэлемента.
  • Мы должны скрыть исходный элемент и отобразить псевдоэлемент с помощью visibility. Примечание display: none на исходном элементе не работает.

17
задан flybywire 25 February 2009 в 06:52
поделиться

7 ответов

Таким образом, 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 одинаково повсеместен.

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

17
ответ дан 30 November 2019 в 10:39
поделиться

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

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

17
ответ дан 30 November 2019 в 10:39
поделиться

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

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

5
ответ дан 30 November 2019 в 10:39
поделиться

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

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

XML: Имеет много инструментов для создания запросов его структуры легкими. Начиная с ее более старого и более установленного, это также имеет больше поддержки инструмента в целом.

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

1
ответ дан 30 November 2019 в 10:39
поделиться

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

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

2
ответ дан 30 November 2019 в 10:39
поделиться

Вы имеете в этой статье" ответ Ajax: XML, HTML или JSON? " полные дебаты по той теме:

Преимущества XML


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

Преимущества JSON


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

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

8
ответ дан 30 November 2019 в 10:39
поделиться

Можно хотеть читать JSON: Обезжиренная Альтернатива XML. С JSON можно дурачиться с обратными вызовами туда и сюда между источником и местом назначения запроса и на самом деле использовать его безболезненно в существующем коде JavaScript.

1
ответ дан 30 November 2019 в 10:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: