Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

JSON vs xml

87
28 июня 2010 года
Kogrom
2.7K / / 02.02.2008
Много было нареканий от начинающих в сторону xml. Я тоже с ним не очень дружу. Для настроек предпочитаю использовать JSON, ибо он понятнее, как для чтения напрямую человеком, так и для обработки самодельной программой.

Так чем же xml лучше JSON? Желательно, с примерами.

Или же, почему люди ещё не перешли на JSON, а используют этот нечитаемый xml?
5
28 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom

Или же, почему люди ещё не перешли на JSON, а используют этот нечитаемый xml?


Потому что для xml существует формальный способ проверки корректности файла - XML-схемы.
Потому что для xml определен формальный язык операции над ним (трансформаций и запросов) - XSL и XPath.

87
28 июня 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Потому что для xml существует формальный способ проверки корректности файла - XML-схемы.
Потому что для xml определен формальный язык операции над ним (трансформаций и запросов) - XSL и XPath.



А можно на рабоче-крестьянском? То есть выигрыш за счет того, что в xml каждая скобка (тег) имеет имя? Теоретически это вроде бы должно добавить надёжности. Но не избыточно ли это?

А то ведь есть JSON2XML. Перевёл и трансформируй как хочешь. А потом обратно вернул для простых людей.

63
28 июня 2010 года
Zorkus
2.6K / / 04.11.2006
В дополнение к тому, что сказал хардкейз:

- XML является основой для многих веб-протоколов. Почему -- другой вопрос, но факт.
- XML поддерживается движками многих СУБД
- XML имеют такую вещь как JAXB, например, позволяя генерировать дата-классы (и даже таблицы в базе) по некоторому формальном описанию бизнес-модели.

А так, то что он сказал --- очень правильно. Быстрый поиск в документе, преобразование, понятная древообразная структура и легкость ее модификации, легкость трансформаций, наконец -- различные способы разбора, в том числе для файлов огромного размера.

JSON чаще используется в веб-2.0 / Ajax, и библиотеках яваскриптовых типа ExtJS, Dojo и прочее. Как датасорс для компонентов типа яваскриптовых списков, таблиц и прочего, который передается с сервера.
352
28 июня 2010 года
skywalker
694 / / 10.02.2006
Цитата:
Так чем же xml лучше JSON?


Скорость обработки яваскриптом JSON (т.е. того же самого яваскрипта) гораздо выше, но это применительно к программирования на яваскрипте.
А сейчас JSON применяется и в других языках программирования (http://www.json.org/).

Так, что корректен вопрос, а на каком языке пишете? :)

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

87
28 июня 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: skywalker
Так, что корректен вопрос, а на каком языке пишете? :)



В основном, Python (в нём есть стандартный модуль для этого). Но думаю и в некоторых программах на C++ использовать (там где Python использовать затруднительно). Чтобы не путаться с разными форматами.

87
28 июня 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: Zorkus
- XML является основой для многих веб-протоколов. Почему -- другой вопрос, но факт.
- XML поддерживается движками многих СУБД



То есть, на выбор влияет возраст и распространённость? С этим сложно поспорить.

На счёт скорости. Предполагаю, что JSON просто легче парсить, потому и скорость выше. Я уже не говорю, что и размеры файлов получаются меньше.

5
28 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom

На счёт скорости. Предполагаю, что JSON просто легче парсить, потому и скорость выше. Я уже не говорю, что и размеры файлов получаются меньше.


Равноценно. Примитивный разбор XML-тегов - задача для первокурсника. Другое дело - реализация страндартных операторов (схемы и запросы) для XML.

87
28 июня 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Равноценно. Примитивный разбор XML-тегов - задача для первокурсника.



Я говорил про то, что компьютеру проще найти скобку, чем тег. И вообще, лаконичность упрощает разбор. Например, элементы словаря или списка в JSON не надо оформлять тегами. В этом тоже экономия.

5
28 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom
Я говорил про то, что компьютеру проще найти скобку, чем тег. И вообще, лаконичность упрощает разбор. Например, элементы словаря или списка в JSON не надо оформлять тегами. В этом тоже экономия.


Это в сущноси экономия на спичках. :)
Но нужно не забывать, что XML это изначально формат для структурированных и (при наличии схемы) строго типизированных данных, а JSON вырос из простейшего представления данных в отдельно взятом динамическом языке со слабой типизацией - JavaScript.

87
28 июня 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Это в сущноси экономия на спичках. :)


Перейдём к примерам:
xml:

 
Код:
<items>
    <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 :)
Понятно, что пример делался под утверждение. Но можете попробовать привести обратный.

Цитата: hardcase
Но нужно не забывать, что XML это изначально формат для структурированных и (при наличии схемы) строго типизированных данных, а JSON вырос из простейшего представления данных в отдельно взятом динамическом языке со слабой типизацией - JavaScript.


Пример комплексного числа на JSON:

 
Код:
{"__complex__": true, "real": 1, "imag": 2}

Понятно, что это немного попахивает нестандартностью, что придется делать свою схему. Но xml тут лучше только наличием готовых инструментов.
5
28 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom
Перейдём к примерам:

Это все понятно, я не защищаю XML и не пропагандирую JSON, мне просто очевидно что народ незаморачиваясь особо вспоминает старый добрый LISP.

87
28 июня 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
мне просто очевидно что народ незаморачиваясь особо вспоминает старый добрый LISP.


У Лиспа есть один существенный недостаток - он не был изобретён в Microsoft...

297
29 июня 2010 года
koodeer
1.2K / / 02.05.2009
Цитата: Kogrom
У Лиспа есть один существенный недостаток - он не был изобретён в Microsoft...


Именно эта причина побуждает меня спросить: какому функциональному языку следует отдать предпочтение?
F# vs все остальные ФЯП - кто победит?

5
29 июня 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: koodeer

F# vs все остальные ФЯП - кто победит?


<--- Смотреть туда. :D

87
29 июня 2010 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
<--- Смотреть туда. :D



У Немерле есть один существенный недостаток...
шах и мат :)
шутка.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог