УДК 004.8

JSON как унифицированный формат данных

Акатьев Ярослав Алексеевич – ассистент кафедры Практической и прикладной информатики МИРЭА – Российского технологического университета.

Верховод Никита Сергеевич – студент МИРЭА – Российского технологического университета.

Морозова Ирина Олеговна – студентка МИРЭА – Российского технологического университета.

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

Ключевые слова: JSON, XML, CSV, DDL, формат данных, унификация данных.

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

Изначально, JSON был создан в 2001 году Дугласом Крокфордом для решения проблемы необходимости обмена данными между различными языками программирования и технологиями. В то время для обмена данными между сервером и клиентом использовался формат XML, но он был слишком громоздким и медленным для использования в веб-браузерах. Крокфорд предложил формат JSON как альтернативу XML. Он также написал JavaScript-библиотеку для работы с JSON, которая была названа json2.js. Всеобщую признательность формат получил в 2013 году, когда стал международным стандартом ECMA-404

Следует разобраться, что такое JSON – это строковый формат данных, способный передавать структурированные объекты. У него есть правила построения, с помощью которых легко, как записывать, так и считывать данные (Рисунок 1).

1

Рисунок 1. Структура объекта JSON.

Помимо объектов, можно передавать и массивы (Рисунок 2). Это дает возможность легко использовать JSON для передачи структур данных.

2

Рисунок 2. Структура массива JSON.

В качестве значений могут быть переданы основные типы данных или null (Рисунок 3).

3

Рисунок 3. Возможные значения JSON.

После изучения, что такое JSON, стоит рассмотреть его преимущества перед другими форматами передачи данных:

  1. XML

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

AJAJ - Асинхронный JavaScript и JSON, прямая замена AJAX. Это технология построения веб – приложений, которая позволяет запрашивать новые данные сервера без обновления страницы браузера. Так как JSON намного легче весит, а AJAX/AJAJ используется для представления текстовой информации, то и выбор в пользу новой технологии становится очевидным.

Еще одной технологией в веб приложениях является SOAP – это стандартизированный протокол обмена данными с API сервисами, ограничивающий обмен сообщениями только xml форматом. В противовес ему был создан архитектурный стиль REST, использующий стандартные методы http протокола для обмена сообщениями с поддержкой любого формата передачи данных. Самой популярной спецификацией стиля является RESTful с JSON для передачи данных, который легче анализировать и обрабатывать. В дополнение к этому, REST не требует наличия определения службы для предоставления веб-службы, что в разы ускоряет разработку и уменьшает количество потребляемых ресурсов.

  1. CSV

CSV является самым компактным форматом файла из всех популярных на данный момент. Он составляет примерно половину размера JSON, поэтому используется в сценариях с необходимостью передачи большого количества данных. Одним из таких сценариев является Machine Learning, где результат зависит от количества переданных однотипных данных. Однако уже сейчас появляются системы, где используется только JSON в ML, например система обучения моделей компьютерного зрения AZURE. Для ее корректной настройки необходимо использовать различные комбинации схем обучения, чему и помогает гибко настраиваемый JSON формат.

Помимо замены популярных форматов данных, JSON может быть использован и для других технологий. Во многих базах данных уже внедрено хранение данных, а также их выгрузка в JSON формате. Например, В PostgreSQL можно любые таблицы или выборки привести к JSON. Но есть одна особенность баз данных, которую тоже можно привести к JSON. Речь идет о Data Definition Language. Это группа команд, которые используются для создания и изменения структуры объектов базы данных: таблиц, представлений, схем и индексов. У разных баз данных разные команды DDL. Было бы удобно использовать общий диалект, который понимали бы все базы данных. Для этого можно использовать JSON:

  1. Для описания поля использовать теги:
  • type – обозначение типа данных. Например, string для строковых данных, number для числовых, boolean для булевых или null,
  • specification – опциональный тег, используется для уточнения типа данных, float для number, char для string и т.д,
  • unique – является ли уникальным данное поле, значения true или false,
  • min - опциональный тег, используется для ограничения снизу значений number или string,
  • max - опциональный тег, используется для ограничения сверху значений number или string,
  • pk – primarykey, опциональный тег, используется для описания идентифицирующего ключа,
  • fk – foreignkey, опциональный тег, используется для описания внешнего ключа,
  • references – используется только при теге fk, содержит в себе название таблицы и поле, к которому относится fk.
  1. Для описания таблиц использовать перечисление полей формата “поле”: {<теги>}
  2. Для описания схемы в целом использовать тег scheme с перечислением таблиц и тег name для названия.

Представив минимально-возможное описание базы данных, будет приведен пример:

{

"scheme": {

"name": "example",

"person": {

"id": {

"type": "nubmer",

"specification": "integer",

"min": "0",

"pk": true

},

"name": {

"type": "string",

"max": "100",

"unique": true

},

"fkId": {

"type": "nubmer",

"specification": "integer",

"fk": true,

"references": {

"passport": "id"

}

}

},

"passport": {

"id": {

"type": "nubmer",

"specification": "integer",

"min": "0",

"pk": true

},

"name": {

"type": "string",

"max": "100"

}

}

}}

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

Для демонстрации путей перехода стоит исследовать готовое приложение, и представить алгоритм перехода на JSON. Было принято решение использовать популярную CRM-систему SALEFORCE, она соответствует всем критериям: имеет архитектуру SOAP, формат транспортировки данных JSON, базу данных PostgreSQL. Диаграмма состояний, соответствующая переходу на JSON представлена на Рисунке 4.

4

Рисунок 4. Диаграмма состояний.

В заключении можно отметить, что JSON – это очень удобный и популярный формат данных, который позволяет унифицировать обмен информацией между различными приложениями и сервисами. Он понятен как человеку, так и машине, что делает его универсальным средством для обмена и хранения данных. Кроме того, JSON поддерживается большинством языков программирования и является стандартом для передачи данных в веб-приложениях и API-сервисах. В целом, JSON является незаменимым инструментом для работы с данными в современном мире программирования и веб-разработки. Если использовать представленные в статье возможности замены xml, csv, ddl на JSON то разработчики смогут унифицировать язык общения между сервисами. Для узконаправленных ниш будут так же использоваться специальные форматы данных, но в общих сценариях они излишни, и JSON заменит большинство из них в скором времени.

Список литературы

  1. Статья «Introducing JSON» [Электронный ресурс] URL: https://www.json.org/json-en.html (Дата обращения: 17.05.2023).
  2. Статья «Формат JSON» [Электронный ресурс] URL: https://epicgrief.ru/format-json-chto-eto-takoe-kak-sozdat-i-otkryt-fail-json-format.html (Дата обращения: 17.05.2023).
  3. Статья «Схемы данных для обучения моделей компьютерного зрения с помощью автоматизированного машинного обучения» [Электронный ресурс] URL: https://learn.microsoft.com/ru-ru/azure/machine-learning/reference-automl-images-schema?view=azureml-api-2 (Дата обращения: 18.05.2023).
  4. Статья «Различия REST и SOAP» [Электронный ресурс] URL: https://habr.com/ru/articles/483204/ (Дата обращения: 18.05.2023).
  5. Статья «JSON и XML. Что лучше?» [Электронный ресурс] URL: https://habr.com/ru/articles/31225/ (Дата обращения: 23.05.2023).
  6. Статья «Что такое JSON» [Электронный ресурс] URL: https://habr.com/ru/articles/554274/ (Дата обращения: 23.05.2023).
  7. Документация PostgreSQL «JSON Types» [Электронный ресурс] URL: https://www.postgresql.org/docs/current/datatype-json.html (Дата обращения: 23.05.2023).
  8. Статья «Salesforce to PostgreSQL: 2 Easy Methods» [Электронный ресурс] URL: https://hevodata.com/blog/salesforce-to-postgresql/ (Дата обращения: 23.05.2023).

Интересная статья? Поделись ей с другими: