В чем преимущество серверного взаимодействия и сериализации JSON?
Я все больше и больше вижу, что JSON используется для:
- Связь между процессами на стороне сервера.
- Сериализация и хранение данных.
В чем преимущество использования JSON по сравнению с XML в этих ситуациях?
Первоначальное преимущество JSON состояло в том, что он сериализовался непосредственно в объекты Javascript, что облегчало Ajax-программирование при работе с клиентской частью Javascript (программирование на Javascript на стороне сервера также явно выигрывало бы, хотя и относительно редко).
Но XML имеет большую историю и экосистему поддерживающих технологий и протоколов (XSL, XSLT, XInclude, XQuery, XPath, XML Schema, поддержка сериализации и т. Д.). Почему JSON проникает в мир, не связанный с Javascript (и сериализацией данных), когда кажется, что он просто дублирует роль, которую исторически играл XML, но без всей технологии поддержки и работы, на разработку которой ушли десятилетия XML?
Когда я выбираю XML вместо JSON в ситуациях сериализации и коммуникации, которые никак не используют Javascript, я, похоже, иду против растущей тенденции. Что мне не хватает?
Изменить: Мой вопрос не только о скорости разбора (хотя это может быть одним из факторов). Мой вопрос больше связан с отсутствием поддерживающих технологий и протоколов в JSON, которые существовали в XML в течение многих лет, и почему технологическое сообщество почувствовало необходимость заново изобрести это колесо.
2 ответа
На основании ваших правок и комментариев, например:
Мой вопрос больше связан с отсутствием поддерживающих технологий и протоколов в JSON, которые существовали в XML в течение многих лет, и почему технологическое сообщество почувствовало необходимость заново изобрести это колесо.
а также:
Мне любопытно, стоило ли вводить совершенно другой протокол с огромным количеством совпадений и разрушением сообщества разработчиков для такой небольшой выгоды.
... кажется, что вы пришли к этому с точки зрения.Net/Java (где такие вещи, как "компиляция кода" и "IDE" распространены). Но поскольку JSON вышел из мира javascript, я считаю, что его популярность объясняется его привлекательностью для людей, которые НЕ находятся в экосистеме.Net/Java (поэтому люди, использующие динамические языки - ruby, python, php и т. Д.).
К счастью или к сожалению, среди людей, использующих динамические языки для веб-разработки, существует основополагающее мнение, что весь материал Java /.Net слишком "тяжелый", поэтому для них на самом деле более привлекательно иметь что-то, что не не требует всего этого инструмента; что легче понять, просто взглянув на него; для которых парсеры могут быть более легко написаны; и для которого вы можете просто вывести строку, не изучая кучу других систем.
Я предполагаю, что популярность JSON для веб-ориентированных систем стала настолько большой среди динамических языков, что у экосистем.Net/Java не было иного выбора, кроме как войти в систему, чтобы обеспечить совместимость с более новыми веб-системами.
Я бы сказал, что использовать JSON часто проще, даже если у вас не так много инструментов, как у вас для XML. Также часто достаточно JSON, вам не нужны такие вещи, как XSLT для хранения конфигурации или обмена некоторыми иерархическими данными. Так что на самом деле он подходит для этой цели лучше, чем XML.
Кроме того, у вас есть некоторые преимущества, такие как лучшая производительность, лучшая читаемость для людей, меньше данных и т. Д.
Но есть поля, где XML определенно подходит лучше, чем JSON. Как, например, генерация документов с использованием XSLT.