JSON vs xml
Так чем же xml лучше JSON? Желательно, с примерами.
Или же, почему люди ещё не перешли на JSON, а используют этот нечитаемый xml?
Или же, почему люди ещё не перешли на JSON, а используют этот нечитаемый xml?
Потому что для xml существует формальный способ проверки корректности файла - XML-схемы.
Потому что для xml определен формальный язык операции над ним (трансформаций и запросов) - XSL и XPath.
Потому что для xml определен формальный язык операции над ним (трансформаций и запросов) - XSL и XPath.
А можно на рабоче-крестьянском? То есть выигрыш за счет того, что в xml каждая скобка (тег) имеет имя? Теоретически это вроде бы должно добавить надёжности. Но не избыточно ли это?
А то ведь есть JSON2XML. Перевёл и трансформируй как хочешь. А потом обратно вернул для простых людей.
- XML является основой для многих веб-протоколов. Почему -- другой вопрос, но факт.
- XML поддерживается движками многих СУБД
- XML имеют такую вещь как JAXB, например, позволяя генерировать дата-классы (и даже таблицы в базе) по некоторому формальном описанию бизнес-модели.
А так, то что он сказал --- очень правильно. Быстрый поиск в документе, преобразование, понятная древообразная структура и легкость ее модификации, легкость трансформаций, наконец -- различные способы разбора, в том числе для файлов огромного размера.
JSON чаще используется в веб-2.0 / Ajax, и библиотеках яваскриптовых типа ExtJS, Dojo и прочее. Как датасорс для компонентов типа яваскриптовых списков, таблиц и прочего, который передается с сервера.
Скорость обработки яваскриптом JSON (т.е. того же самого яваскрипта) гораздо выше, но это применительно к программирования на яваскрипте.
А сейчас JSON применяется и в других языках программирования (http://www.json.org/).
Так, что корректен вопрос, а на каком языке пишете? :)
Если на яваскрипте, то скорость разбора данных - это огромное преймущество JSON.
В основном, Python (в нём есть стандартный модуль для этого). Но думаю и в некоторых программах на C++ использовать (там где Python использовать затруднительно). Чтобы не путаться с разными форматами.
- XML поддерживается движками многих СУБД
То есть, на выбор влияет возраст и распространённость? С этим сложно поспорить.
На счёт скорости. Предполагаю, что JSON просто легче парсить, потому и скорость выше. Я уже не говорю, что и размеры файлов получаются меньше.
На счёт скорости. Предполагаю, что JSON просто легче парсить, потому и скорость выше. Я уже не говорю, что и размеры файлов получаются меньше.
Равноценно. Примитивный разбор XML-тегов - задача для первокурсника. Другое дело - реализация страндартных операторов (схемы и запросы) для XML.
Я говорил про то, что компьютеру проще найти скобку, чем тег. И вообще, лаконичность упрощает разбор. Например, элементы словаря или списка в JSON не надо оформлять тегами. В этом тоже экономия.
Это в сущноси экономия на спичках. :)
Но нужно не забывать, что XML это изначально формат для структурированных и (при наличии схемы) строго типизированных данных, а JSON вырос из простейшего представления данных в отдельно взятом динамическом языке со слабой типизацией - JavaScript.
Перейдём к примерам:
xml:
<item>3</item>
<item>5</item>
<item>8</item>
<item>1</item>
<item>1</item>
<item>1</item>
</items>
JSON:
items: [3, 5, 8, 1, 1, 1]
}
Это спички? А если файл будет мегабайт 10 :)
Понятно, что пример делался под утверждение. Но можете попробовать привести обратный.
Пример комплексного числа на JSON:
Понятно, что это немного попахивает нестандартностью, что придется делать свою схему. Но xml тут лучше только наличием готовых инструментов.
Это все понятно, я не защищаю XML и не пропагандирую JSON, мне просто очевидно что народ незаморачиваясь особо вспоминает старый добрый LISP.
У Лиспа есть один существенный недостаток - он не был изобретён в Microsoft...
Именно эта причина побуждает меня спросить: какому функциональному языку следует отдать предпочтение?
F# vs все остальные ФЯП - кто победит?
F# vs все остальные ФЯП - кто победит?
<--- Смотреть туда. :D
У Немерле есть один существенный недостаток...
шах и мат :)
шутка.