Знакомство с наиболее часто используемым форматом файлов.

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

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

{ "name": "Ash", "profession": "Pokemon Trainer", "money": 1358, "pokemon": [ { "name": "Bulbasaur", "level": 14, "attacks": [ "Ram", "Razor Leaf" ], "active": true }, { "name": "Charmander", "level": 6, "attacks": [ "Slash", "Ember" ], "active": false } ], "Cheats": null }

Вездесущность JSON определенно проистекает из его простоты, поэтому нам нужно обратить внимание только на две вещи:

Синтаксис

Файл JSON сохраняется с расширением .json и обычно начинается с самого внешнего объекта, который инкапсулирует все. Теоретически можно также иметь самый внешний массив, который также является действительным JSON, но это значительно усложняет индексацию. Отступ обычно используется для того, чтобы сделать его более удобочитаемым, но нет строгих соглашений о том, сколько пробелов используется, часто это 2 или 4.

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

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

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

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

Типы данных

Отличия от XML

JSON имеет несколько преимуществ перед XML:

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

Кроме того, в JSON есть массивы, а в XML их нет и нужно создавать несколько тегов с одинаковыми именами. Сравните следующие два формата, в которых хранится одна и та же информация:

{"users": [
  {"username": "TonyStark", "email": "[email protected]"},
  {"username": "Captain America", "email": "[email protected]"}, 
  {"username": "Thor", "email": "[email protected]"}, 
  {"username": "Loki", "email": "[email protected]"} 
] }
<users> 
  <user> 
    <username>TonyStark</username> 
    <email>[email protected]</email>    
  </user> 
  <user>
    <username>Captain America</username>   
    <email>[email protected]</email> 
  </user> 
  <user> 
    <username>Thor</username> 
    <email>[email protected]</email> 
  </user> 
  <user> 
    <username>Loki</username> 
    <email>[email protected]</email>
  </user> 
</users>

Резюме

И это уже все, что есть в JSON. Эта великая простота, в то же время допускающая вложение сложных структур, делает его настолько универсальным. Обычно вы не будете писать чистый JSON напрямую, а будете извлекать его из базы данных или генерировать с помощью программы. Тем не менее, очень важно понимать основную структуру. Ниже я также составил список ресурсов, которые могут быть вам полезны.

Ресурсы

Официальная страница Введение в JSON с красивыми графическими иллюстрациями формата.

Линтер, чтобы проверить, соответствует ли ваш файл всем правилам.

Конвертер XML в JSON здесь

Первоначально опубликовано на https://www.bio-ai.org.