Назад в блог

Обзор формата обмена данными JSON

Обзор формата обмена данными JSON

JavaScript Object Notation (JSON для краткости, произносится похоже на имя «Джейсон») — это формат обмена данными. Как видно из названия, JSON происходит от JavaScript, но он не является единственным языком программирования, который позволяет его использовать. На самом деле, многие другие языки программирования поддерживают его работу, включая Ruby, PHP, Python, и Java.

При самостоятельном существовании файл JSON использует расширение .json, но будучи форматом, который легко передается между веб-сервером и клиентом (или браузером), он также может быть определен как формат .html. В этом случае он может быть либо объектом, присвоенным переменной, либо строкой JSON внутри кавычек.

JSON является хорошей альтернативой XML, так как он более читаем и требует минимального форматирования. Это руководство расскажет вам о данных, которые могут храниться в файлах JSON, а также об общем синтаксисе и структуре этого формата.

Структура & Синтаксис

Объект JSON — это формат данных, использующий фигурные скобки для представления пар «ключ-значение». При работе с JSON вы чаще всего будете видеть его в файлах .json, но в контексте программы он также может существовать в виде строки или объекта JSON.

Вот пример того, как выглядит объект JSON:

json object

Хотя это довольно короткий пример, а объекты JSON могут быть гораздо длиннее, он точно демонстрирует, как обычно устроен формат: с двумя фигурными скобками на каждом конце и парами «ключ-значение», заполняющими пространство между ними. Большая часть данных в JSON инкапсулирована в элемент JSON.

Существует двоеточие, разделяющее пары «ключ-значение» (“ключ” : “значение”). Каждая из этих пар отделяется от других элементов списка запятой. В результате средняя часть форматирования JSON выглядит следующим образом: “ключ” : “значение”, “ключ” : “значение”, “ключ” : “значение”. В приведенном выше примере, "name" : "Akshay", например, является первой парой «ключ-значение».

Ключи в каждом объекте должны быть уникальными, могут быть представлены любой допустимой строкой, заключенной в двойные кавычки (“ключ”), и всегда располагаются слева от двоеточия. Хотя пробелы в строках ключей допускаются (например, в “first name”), это усложняет доступ к ним с точки зрения программирования. По этой причине общепринятой практикой в программировании является замена пробелов в ключах символами подчеркивания (“first_name”).

Значения в JSON располагаются справа от двоеточия. На самом базовом уровне детализации они должны относиться к одному из 6 конкретных типов данных:

  • Числа
  • Объекты
  • Массивы
  • Строки
  • True или False (логический тип)
  • Null

В следующем разделе будут рассмотрены более сложные типы данных массива объектов JSON, при этом каждое значение, передаваемое в JSON, сохраняет свой синтаксис. Другими словами, строки по-прежнему будут отображаться в кавычках, а числовые значения — нет.

По соглашению формат JSON обычно записывается в многострочном формате. Однако его также можно отформатировать в одну строку:

single line json

Этот тип форматирования чаще встречается при работе со строкой JSON или внутри другого типа файлов. При работе с огромными наборами данных запись двоеточий и пар «ключ-значение» на отдельных строках делает список более читаемым для человека, поскольку в JSON отсутствует разделение пробелами:

json object

Хотя объект JSON похож на JavaScript, важно помнить, что это разные форматы. В то время как JavaScript разрешает использование функций, JSON этого не делает. Что делает JSON таким ценным, так это его межязыковая совместимость, позволяющая всем программным платформам интерпретировать его.

До сих пор мы рассматривали формат JSON только в его простейшем виде, но он может развиваться иерархически и более сложным образом, когда включает в себя вложенные объекты и массивы. В следующем разделе мы рассмотрим более продвинутый JSON.

Использование сложных типов JSON

Помимо вложенных массивов, JSON также может хранить вложенные объекты. Эти объекты и массивы будут передаваться в качестве значений для ключей, и они будут связаны с ключами для формирования пар «ключ-значение».

  • Формирование вложенных объектов

В следующем users.json файл-изображение, для каждого из четырех пользователей передается вложенный объект JSON (“akshay”, “sam”, “Andrew”, “James”). Каждый пользователь имеет свои собственные вложенные ключи (“location” и “username”):

nested

Выделенная часть представляет собой пример первого вложенного объекта. Фигурные скобки используются в примере выше для создания вложенного объекта JSON с соответствующим именем пользователя и сведениями о его местоположении для каждого из четырех пользователей. При использовании объектов запятые используются для разделения элементов на основе конкретного атрибута пользователя.

  • Формирование вложенных массивов

Массивы Javascript, передаваемые в качестве значения, также могут быть использованы для вложения данных в формате JSON. Это делается с помощью [ ] (квадратных скобок) в конце типов массивов, при этом массивы представляют собой структурированные списки, содержащие уникальные типы данных:

array

В выделенном разделе приведенных выше примеров 2 профиля Akshays’s в социальных сетях и 2 ссылки на веб-сайты используются внутри массива вложенной информации благодаря наличию квадратных скобок. Используя вложение таким образом в JSON, мы можем добиться большей гибкости при работе с иерархическим и сложным информационным содержимым.

  • Сравнение с XML

Extensible Markup Language (XML) предоставляет метод хранения данных, к которым могут получать доступ как машины, так и люди. Как и JSON, XML может использоваться многими языками программирования. В отличие от JSON, XML содержит значительно больше текста и, следовательно, более сложен и требует больше времени для составления. В то время как стандартная функция может анализировать JSON, для XML требуется специальный парсер XML. Кроме того, XML не может использовать массивы. Давайте сравним одни и те же данные, отформатированные в XML и JSON:

xml vs json

XML требует значительно больше текста и занимает больше места. Он также требует закрывающих тегов, в то время как JSON гораздо более компактен и просто устроен. Те, кто знаком с HTML, вероятно, могут заметить сходство в использовании тегов в XML.

Прежде чем принять решение о том, какой формат использовать, всегда полезно оценить масштаб и потребности проекта. JSON менее многословен, более лаконичен и быстро используется для приложений AJAX и в других ситуациях. Тип проекта поможет определить наиболее подходящие структуры данных для использования.

Узнать больше о JSON

JSON — это универсальный и естественный формат, который может быть реализован на нескольких языках программирования. Вы сможете найти полный список поддерживаемых языков на странице “Introducing JSON” page. Кроме того, информацию о парсинге и совместимости можно найти в “библиотеке iQuery”.

В конце концов, скорее всего, вам не придется слишком часто писать чистый JSON вручную. Вместо этого вы будете получать его из источников данных или преобразовывать другие файлы данных в JSON. Используя инструмент с открытым исходным кодом Mr. Data Converter, вы можете преобразовывать данные в формате CSV или с разделителями-табуляцией из табличных программ в JSON. С помощью платформы utilities-online.info, лицензированной Creative Commons, вы можете переводить XML в JSON и наоборот. При использовании автоматизированного программного обеспечения дважды проверяйте отчеты, чтобы исключить избыточность.

Вы также можете использовать JSONLint для проверки вашего JSON и JFiddle для его оценки в контексте веб-разработки при преобразовании других типов в формат JSON.

Заключение

Получая все большую поддержку API (включая Twitter API), JSON представляет собой облегченный формат данных, который упрощает редактирование, хранение и обмен данными. Поскольку вы не будете создавать свои собственные файлы .json, а скорее получать их из других источников, важнее думать о том, как использовать JSON в ваших программах, а не о его структуре.

Вот дополнительные ресурсы из нашего блога, которые помогут вам программировать на JavaScript:

Приятного программирования!

author

Akshay Nagpal

Автор · CloudSigma

Preslav Dobrev — креативный дизайнер в CloudSigma, сосредоточенный на формировании последовательного корпоративного образа с помощью традиционных и инновационных маркетинговых каналов. Он умело сочетает художественное видение со стратегическим маркетингом, создавая убедительные истории бренда.

Комментарии

Комментариев пока нет. Будьте первым.