Авторское право

Форматы данных

Формат JSON

Формат JSON оказался очень хорош для построения API-интерфейсов и удаленный вызовов. Когда-то компания Microsoft пыталась продвинуть свой формат удаленных вызовов - MS SOAP, сделанный на базе XML. Однако JSON оказался куда более приспособленным механизмом для организации удаленного взаимодействия. Компактный, читаемый, удобный в использовании, свободный в выборе схемы данных, поддерживающий различные кодировки - эти и многие другие достоинства присущи формату JSON. Однако не всё так радужно и просто.

Формат JSON родился на стыке двух IT-технологий: web и javascript. Язык JavaScript изначально поддерживал нотацию описания некоторых элементов, очень схожую с JSON, и поэтому использование способа упаковки в этой нотации для передачи данных через интернет стало полностью логическим и ожидаемым событием.

Простой и наглядный вариант файла в JSON-формате ниже:

    {
        date: '2020-01-01',
        data: {
            'row1','row2','row3'
        },
        msg: 'transmission'
    }

Как видно из примера - формат данных JSON представляет собой некий ассоциативный массив, данные котором разложены "по ключам". В примере эти ключи - отформатированы по строкам, хотя в оригинальном варианте для автоматизированной обработки это совсем не обязательно: JSON-формат может представлять из себя тот же самый пакет, вытянутый в одну строку.

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

Процесс кодирования данных в JSON обычно называется сериализацией, а обратный процесс - десериализацией. Сериализация и десериализация обычно выполняется в один шаг (в одну транзакицию). Многие базы данных умеют "нативно" хранить и передавать данные в формате JSON.

Несморя на такое распространение и поддержку JSON не лишён недостатков:

  • Формат JSON в целом очень похож на XML, но содержит гораздо меньшее число средств для анализа, исправления, обработки
  • Как и XML в классическом виде формат не поддерживает передачу бинарных данных: они должны быть преобразованы в текстовые, что увеличивает объем файла
  • В "чистом" виде формат JSON как и XML - лишён структуры и прикладных стандартов. Каждый прикладной стандарт должен быть описан и согласован отдельно.
  • Формат JSON хорош для передачи данных, но не очень хорош для хранения, хотя он и нашёл своё место в NoSQL-базах данных, типа MongoDB
  • Большие данные не без труда обрабатываются в формате JSON - хотя иногда это бывает проще XML, а иногда - нет
формат данных json javascript
 0
 0