
Что такое JSON? Лучше ли он, чем XML?
Последнее обновление:
По словам Дугласа Крокфорда, одного из разработчиков JSON, «JSON (JavaScript Object Notation) — это легковесный формат обмена данными. Людям легко его читать и писать. Машинам легко его разбирать и генерировать».
Хотя JSON возник на основе JavaScript, основные языки программирования поддерживают его напрямую или через библиотеки. JSON стал очень популярным в интернете. Сегодня его используют почти все общедоступные веб-сервисы и некоторые закрытые. Чаще всего он применяется для обмена информацией между веб-серверами и клиентами. Благодаря его популярности многие базы данных, включая MySQL, PostgreSQL, MongoDB и Neo4j, поддерживают JSON.
Давайте подробнее рассмотрим структуру JSON, причины его использования, преимущества перед XML, недостатки и подходящие сценарии применения.
Структура файла JSON
Если не углубляться в технические термины, данные JSON хранятся в обычных текстовых файлах в виде пар «ключ — значение». Такие файлы легко открыть и изучить, а их содержимое понятно человеку. Это обеспечивает совместимость JSON с разными языками: любой язык может обрабатывать и читать обычный текст. Благодаря текстовому формату JSON занимает меньше места, что упрощает и ускоряет передачу данных в интернете. Для веб-сервисов, которые отображают и отправляют большие объёмы данных, JSON — идеальный выбор.
Основная альтернатива JSON — XML. Он использует структуру тегов, что делает его несколько сложнее. XML применяется главным образом для обмена данными, поскольку в каждом языке программирования есть XML-парсер. Для проверки XML существует множество схем, поэтому он хорошо подходит для электронной коммерции, например интернет-магазинов, банковских сервисов, интеграции промышленных систем и т. д.
Однако важно отметить, что XML — не язык программирования, а язык разметки, поэтому данные в нём хранятся в древовидных структурах. Это увеличивает объём данных и замедляет их передачу.
Если вы хотите преобразовать XML в объект JavaScript, вам придётся работать с сотнями строк кода, не говоря уже о дополнительных настройках. А для преобразования JSON в объект JavaScript достаточно одной строки кода.
Хорошая новость: с Filestar вы можете легко преобразовать XML в JSON и упростить свою работу. Так же легко можно преобразовать JSON в XML.

Зачем использовать JSON
· Движок JavaScript быстро разбирает JSON, а небольшой размер формата ускоряет передачу данных.
· В JSON нет лишних или пустых тегов данных, поэтому он остаётся простым, удобным для чтения и компактным. При этом он поддерживает массивы, логические значения, числа, null, строки и простые объекты.
· JSON поддерживает кодировки ASCII и UTF.
· JSON обеспечивает более безопасный разбор данных, кроме случаев использования JSONP, тогда как XML подвержен атакам.
· Сочетание JSON и AJAX позволяет обрабатывать данные с очень высокой скоростью.
Ограничения JSON
Хотя JSON обеспечивает гибкость работы с данными и поддерживается множеством языков программирования, нельзя не упомянуть некоторые его недостатки.
1. В нём нет схемы, и это одновременно преимущество и недостаток. С одной стороны, вы можете представлять данные в любой удобной форме. С другой — очень легко случайно создать данные с неправильной структурой.
2. Допускается только один числовой тип данных — число двойной точности IEEE-754. Звучит сложно, но, проще говоря, вы не сможете использовать всё разнообразие числовых типов, доступных во многих языках программирования.
3. Кроме того, нельзя добавлять комментарии к полям, которым нужны дополнительные пояснения. Это может приводить к недопониманию.
4. Да, JSON менее многословен, чем XML, но для огромных объёмов данных или особых задач обмена лучше использовать более эффективный формат.
Когда лучше использовать:
Если вы пишете программу, которая взаимодействует с мобильным приложением или браузером, используйте JSON. XML будет устаревшим выбором: он плохо подходит для фронтенда и мобильных сценариев, которые вы хотите поддерживать.
Для обмена данными между серверами JSON тоже может пригодиться, но такие инструменты сериализации, как Apache Thrift и Avro, справляются лучше.
Хотя JSON поддерживается всеми базами данных, в случае реляционных баз общее правило — по возможности избегать его. Реляционные базы работают со структурированными данными, поэтому при выполнении запросов к содержимому объектов JSON могут возникать проблемы с производительностью.
Подведём итог
Одним словом, JSON — это стандарт де-факто для передачи данных между браузерами, веб-серверами и мобильными приложениями. Благодаря гибкости и простоте его легко читать, понимать и обрабатывать. С JSON вам не нужно беспокоиться о проверке данных и семантике.
