XML и JSON - преимущества и недостатки?
Недавно я слышал о JavaScript Object Notation (JSON), и, посмотрев его, кажется, что он становится довольно популярным в качестве альтернативы расширяемому языку разметки (XML).
Я пошел на эту страницу для получения дополнительной информации, но она выглядела скорее как страница с ошибками XML, а не страница сравнения. Поэтому я подумал, что должен спросить здесь:
Каковы преимущества JSON по сравнению с XML, и почему (если вообще) мы должны выбирать один над другим?
9 ответов
- JSON более компактен и может быть легко загружен в JavaScript.
- XML более строгий и поддерживает схемы и пространства имен.
На первый взгляд, JSON кажется превосходным во всех отношениях - он гибкий, более компактный и во многих случаях проще в использовании (особенно при работе с JavaScript), однако в нем отсутствуют некоторые ключевые функции, в частности:
- Поддержка схемы,
Т.е. возможность для стороны A указать формат документа и возможность для стороны B проверить, что они предоставляют что-то, соответствующее этому формату.
Это очень важно при передаче данных между отдельными системами, где отклонение от ожидаемого формата может означать, что данные не могут быть обработаны (или, что еще хуже, обрабатываются неправильно).
- Поддержка пространства имен,
Т.е. возможность смешивать данные, предназначенные для чтения несколькими источниками (или записанными несколькими источниками), в одном документе.
Примером этого в действии является протокол SOAP - пространства имен позволяют разделять данные SOAP "Конверт" или "Обертка", которые передаются вместе с сериализованными данными приложения. Это позволяет веб-фреймворкам обрабатывать и обрабатывать конверт SOAP, а затем передавать данные тела / полезной нагрузки в приложение.
JSON очень полезен при разработке веб-приложения, где требуется быстрая, компактная и удобная сериализация данных, однако его гибкая природа делает его менее подходящим, чем XML, для передачи данных между отдельными системами или для хранения данных, которые будут прочитаны третьими лицами.
Возможно, со временем подобные функции появятся в JSON, но сейчас XML является доминирующим форматом для таких вещей, как веб-сервисы и форматы файлов.
Преимущества JSON
- Меньший размер сообщения
- Более структурная информация в документе
- Можно легко различить количество
1
и строка"1"
как числа строки (и логические значения) представлены в JSON по-разному. - Можно легко различать отдельные элементы и коллекции одного размера (используя массивы JSON).
- Можно легко различить количество
- Проще представить нулевое значение
- Легко потребляется JavaScript
Преимущества XML
- Пространства имен позволяют совместно использовать стандартные структуры
- Лучшее представление для наследования
- Стандартные способы выражения структуры документа: XML-схема, DTD и т. Д.
- Стандарты синтаксического анализа: DOM, SAX, StAX
- Стандарты для запросов: XQuery и XPath
- Стандарты для преобразования документа: XSLT
Рисовать
- Человек читаемый
- Легко разобрать
XML
- Может иметь схему, которая заявляет свой формат.
- Это представляет интерес для контроля качества людей. Вы можете доказать, что его формат соответствует ожидаемому, и, следовательно, вам может не потребоваться быть столь же пылким, как в противном случае вы можете проверять, существует ли поле внутри него каждый раз, когда вы хотите сослаться на него.
- (Хотя это предполагает, что вы изо всех сил пытаетесь действительно проверить XML на соответствие его схеме.)
- Bloated; каждое имя поля должно быть записано дважды для каждого поля. Еа!
JSON
- Гораздо менее раздутый, легче разобрать и, возможно, более читабельный (если вы правильно разметите его).
- Не настолько мощный: недостаточно выразительный, чтобы отделить атрибуты от значений.
Преимущества XML
Почти повсеместная поддержка в широком спектре языков и структур. Скорее всего, уже есть инструмент, который поможет вам извлечь информацию из XML-ответа.
Он может придерживаться конкретной схемы, если вы того пожелаете. Как только он подтвердится, вы можете сказать, что это правильно, и начать анализ.
Пространства имен позволяют разделить XML.
Преимущества JSON
Легкий по сравнению с XML. Меньше символов = меньшее время прохождения
internet tubes
,Проще справиться с Javascript, если вам нужно что-то для веб-приложения.
JSON - меньше и может быть изначально загружен как объект JavaScript (скорость является значением)
XML - все еще стандартный, но более старый (медленнее, больше, но не только JS)
JSON - намного более простой формат, чем XML. JSON предназначен только для описания данных в виде иерархии объектов, в то время как XML имеет много других функций.
Если вам нужно только отправить простые простые данные, то JSON является хорошей альтернативой, поскольку именно для этого она и предназначена.
Если вам нужен более мощный способ описания ваших данных, тогда вам понадобится XML, поскольку JSON просто не делает ничего особенного.
Они одинаково выразительные форматы. JSON менее многословен. JSON может быть легко проанализирован в JavaScript (и других языках), а XML также легко анализируется многими вещами.
Я думаю, что наиболее важным соображением является то, что будет потреблять данные - если у вас уже есть куча кода для интерпретации XML, придерживайтесь этого. Если все ваши клиенты веб-разработчики, используйте JSON.
Меньше многословия - XML использует больше слов, чем необходимо
JSON быстрее - синтаксический анализ программного обеспечения XML медленный и громоздкий. Многие из этих библиотек манипулирования DOM могут привести к тому, что ваши приложения будут использовать большие объемы памяти из-за многословности и стоимости анализа больших файлов XML.
Структура модели данных JSON соответствует данным: структура данных JSON - это карта, а XML - это дерево. Хотя карта (только пары ключ / значение) может быть ограничивающей, это то, что мы хотим, потому что ее легче интерпретировать и она предсказуема.
В коде: элементы представлены в коде одинаково. Во многих языках, особенно в динамических, вы можете просто "выпороть в JSON", и у вас сразу появится объект вашего домена. Легко перейти от объектов в JSON к объектам в коде, потому что они выровнены. При переходе от объектов в XML к объектам в коде они не выравниваются, и существует много возможностей для интерпретации.
JSON ограничивает, но это хорошо: JSON ограничен с точки зрения того, какие объекты можно моделировать. Некоторые могут подумать, что XML лучше, потому что можно моделировать больше объектов, и это не запрещает разработчикам. Но несмотря на то, что JSON запрещает разработчикам, это положительно, делая код более простым, более предсказуемым и легким для чтения. XML можно отформатировать так, чтобы он выглядел и функционировал так, как хочет компания, но разработчикам трудно читать, понимать и преобразовывать. В большинстве случаев люди считают, что XML лучше, потому что разработчики могут делать все что угодно, но в эпоху упрощения, чем меньше, тем лучше, что делает JSON лучшей альтернативой.
Абберивация?
- JSON (нотация объекта JavaScript)
- XML (расширяемый язык разметки)
Использование?
- Оба для обмена данными.
Лучше всего для?
- JSON в качестве носителя данных для веб-приложений из-за его простоты.
- XML при передаче структурированных данных через Интернет.
Почему/когда XML?
- Более гибкий, чем HTML. (приложение упрощает форматирование данных и их правильное отображение в любом браузере или устройстве)
- Создавайте собственные теги, которые можно использовать в любых XML-данных. (Это заставляет разработчиков и дизайнеров сотрудничать при создании новых проектов)
- Его можно использовать для обмена структурированной информацией между программами и документами.
Почему/когда JSON?
Это не зависит от языка. (Независимая от языка природа JSON делает его идеальным для использования в других языках веб-разработки, таких как Ruby и Javascript)
JSON также удобен для чтения человеком.
Вы можете читать и писать этот формат, не зная, что находится в каждом поле, благодаря пакетам анализатора JSON.
Просто запомни эти правила,
A- Поля должны иметь одинаковые имена.
B- Все значения должны быть строками.
C- Запятые должны разделять значения.
JSON использует меньше памяти, чем программное обеспечение XML при обработке информации (идеально подходит для обработки больших данных).
JSON набирает популярность в качестве носителя данных для веб-приложений из-за своей простоты.
Используется во многих различных контекстах, от веб-разработки до хранения данных (также идеальный формат для обмена информацией между веб-API и приложениями).
Это отлично подходит для обмена данными между несколькими приложениями.
Недостатки XML?
- XML-код — это более длинный способ представления структурированных данных.
- XML доступен для чтения людям, но не обязательно машинам.
- У XML есть некоторые проблемы с кроссплатформенной совместимостью.
- Файлы XML требуют больше места для хранения, чем файлы JSON.
- XML имеет более жесткую структуру, чем JSON, что затрудняет манипулирование им без нарушения документа.
Недостатки JSON?
- XML более безопасен, чем JSON (исследования NIST).
- Большинство предприятий используют среду XML, а не JSON.
Почему JSON > XML — это лучше всего:
- XML гораздо сложнее анализировать, чем JSON. JSON анализируется в готовый к использованию объект JavaScript.
Как и в случае с XML:
- Сначала получите XML-документ.
- Используйте XML DOM для циклического просмотра документа.
- Извлекайте значения и сохраняйте в переменных.
При использовании JSON:
Получите строку JSON.
JSON.Разберите строку JSON.
Надеюсь, это подробное объяснение поможет.