Я уверен, что многие разработчики знакомы с XML и JSON , и они использовали их обоих. Таким образом, нет смысла объяснять, чем они являются, и какова их цель, даже вкратце.
Если мы попытаемся отобразить их концепции, мы можем сказать (поправьте меня, если я ошибаюсь):
- XML-теги эквивалентны JSON
{}
- Атрибуты XML эквивалентны свойствам JSON
- Коллекция XML-тегов эквивалентна JSON
[]
Единственное, о чем я могу подумать, чего нет в JSON, - это пространства имен XML .
Вопрос в том, рассматривая это отображение и учитывая, что JSON намного легче в этом отображении, можем ли мы видеть мир в будущем (или, по крайней мере, теоретически думать о мире) без XML, но с JSON, делающим все, что делает XML? Можем ли мы использовать JSON везде, где используется XML?
PS: Обратите внимание, что я видел этот вопрос. Это нечто совершенно отличное от того, что я здесь спрашиваю. Поэтому, пожалуйста, не упоминайте дубликат .
Ответы:
То, что дает XML его мощь и большую сложность, - это смешанный контент. Вещи как это:
Даже не пытайтесь делать это в JSON или манипулировать им в обычных языках программирования. Они не были предназначены для работы.
Этот вопрос обычно задают люди, которые забывают, что M в XML обозначает разметку. Это способ взять простой текст и добавить разметку для создания структурированного текста. Это также очень удобно для устаревших данных, но это не то, для чего они были разработаны, и в чем их основные достоинства. Существует множество способов обработки простых данных, и JSON является одним из них.
источник
A
, элемент B и беспорядок, в котором мы находимся! Это массив, который вы можете просто объяснить в JSON.Основное различие, я думаю, заключается в том, что XML разработан так, что он самоочевиден с его dtd и всем остальным.
С JSON вы должны много говорить о данных, которые вы получаете.
источник
Дословный перевод в JSON часто менее лаконичен и менее понятен. Рассмотреть возможность:
Наиболее эффективное представление JSON, которое я видел, это:
Теперь представьте это для всего файла XML. Я не говорю, что JSON не имеет своего места, но нельзя исключать XML.
источник
(foo (x:bar (@ (x:prop1 "g")) (quuz)))
JSON и XML являются способами форматирования данных. Оба способны делать это на отлично, поэтому может ли JSON делать все, что делает XML? Да.
Но ..... Более актуальный вопрос может быть не о том, что может делать XML / JSON , а о том, что вы можете сделать с XML / JSON.
Есть несколько вещей, которые вы можете сделать с XML, но я не думаю, что вы можете сделать с JSON, например, перевод с XLST, поиск с XPath и проверка с помощью схем. Все очень и очень полезно.
источник
В XSLT есть много функций, которые могут быть невозможны в JSON. Так что, если они не являются функционально эквивалентными, они не смогут заменить друг друга.
источник
Дело в том, что нам придется долго жить с обоими, и быть фанатом JSON "считается вредным".
источник
JSON довольно новый, и устаревшие системы его не поддерживают. Обновление унаследованных систем является сложным и содержит ошибки. JSON не заменит XML в любое время в ближайшем будущем.
источник
Я бы сказал, что cwallenpoole делает отличное замечание. Хотя большая часть XML может быть переведена в JSON, лучше ли это делать, это отдельный вопрос.
JSON поддается структурам данных как минимум так же хорошо, как XML и, возможно, лучше, но XML читается намного более естественно, чем JSON, при разметке текстовых документов, где теги используются в большем потоке текста, а не просто как способ разграничения иерархии. полей.
Хотя HTML 5 может иметь свой собственный синтаксический анализатор, он по-прежнему оставляет такие приложения, как DocBook.
источник
Это зависит от домена. С точки зрения веб-сервисов? Абсолютно. Стыдно, что поставщики все еще используют SOAP для своих клиентов. REST + JSON полностью.
Теперь, когда вы говорите о сложных, структурированных данных со стилевой информацией, такой как Docbook или другая реализация? Это правильный домен для XML.
источник
Зачем ограничивать себя JSON, когда YAML - супернабор, гораздо более выразительный и, следовательно, мощный, чем XML или JSON.
Тем не менее, если вы используете правильные платформы сериализации, вы сможете сериализовать и десериализовать все вышеупомянутые форматы с помощью пары простых строк кода.
источник
Становится безобразным, когда вы пытаетесь смоделировать эти два объекта в JSON:
Используя JSON, как это принято, в 99% случаев можно потеряться:
И теперь вам нужно добавить несколько мета-структур, и вся красота JSON исчезла, а вы остались с минусами.
источник
{ customer: { name: 'John Doe' }, employee : { name: 'John Doe' } }
. Технически, ваш ответ не верен. :)<customer><name>John Doe</name></customer><customer><name>John Doe</name></customer>
в JSON?Я не знаю, существует ли такая возможность для JSON, но, по крайней мере, в .NET вы можете проверять XML по заданной схеме. Это ценное преимущество XML в моих глазах.
источник