Що таке JSON: структура та правила запису

Автор: Опубліковано

Коротко: JSON — це текстовий формат запису й обміну даними, який використовують, зокрема, у застосунках, конфігураційних файлах і для зв’язку із серверами. Він упорядковує інформацію за допомогою назв, значень і списків, тож її можуть читати як люди, так і програми. Це не мова програмування: формат описує дані, але не містить інструкцій для виконання.

Для чого потрібен JSON?

Назва JSON походить від JavaScript Object Notation. Хоча формат виник на основі запису об’єктів у JavaScript, він не залежить від цієї мови. Його підтримують, зокрема, Python, Java, PHP і C#.

JSON часто використовують в API — інтерфейсі, що забезпечує взаємодію між програмами. Коли застосунок магазину запитує в сервера назву товару, ціну й наявність, він може отримати відповідь саме в цьому форматі. Застосунок зчитує значення й на їхній основі відображає картку товару.

Цей самий формат використовують для збереження налаштувань програм, експорту даних і передавання подій між сервісами. Файли зазвичай мають розширення .json, але дані JSON можна передавати й без створення окремого файлу.

Як виглядає JSON і як його читати?

Основою багатьох документів JSON є об’єкт — набір пар «назва–значення». Назву також називають ключем. Наведений нижче приклад описує товар у магазині:

{
  "nazva": "Керамічна чашка",
  "tsina": 39.90,
  "valiuta": "PLN",
  "naiavnyi": true,
  "kolory": ["білий", "зелений"],
  "vyrobnyk": {
    "nazva": "Приклад майстерні"
  },
  "promokod": null
}

Фігурні дужки {} позначають об’єкт. Двокрапка відділяє ключ від значення, а кома розділяє пари. У цьому прикладі ключ nazva має текстове значення Керамічна чашка, а tsina — числове.

Квадратні дужки [] позначають масив — упорядкований список значень. Список kolory містить два текстові значення. Натомість vyrobnyk — це об’єкт усередині іншого об’єкта. Така вкладеність дає змогу групувати пов’язану інформацію.

JSON допускає шість типів значень:

Документ JSON загалом не обов’язково має бути об’єктом. Він також може бути масивом, текстом, числом або іншим допустимим значенням, хоча конкретний API може вимагати певної структури.

Правила запису та найпоширеніші помилки

JSON має суворий синтаксис. Ключі об’єктів і текстові значення потрібно записувати в подвійних лапках — одинарні лапки їх не замінюють. Десяткові числа записують із крапкою, а не з комою, незалежно від польських правил запису чисел.

Після останнього елемента об’єкта чи масиву не можна ставити кому. Стандартний JSON також не підтримує коментарів. Тому наведений нижче запис помилковий:

{'nazva': 'Chashka', 'tsina': 39.90,}

Правильний варіант виглядає так:

{"nazva": "Чашка", "tsina": 39.90}

Пробіли, відступи й переноси рядків поза текстовими значеннями потрібні для зручності читання — вони не змінюють змісту даних. А перед лапками всередині тексту потрібно поставити зворотну скісну риску, наприклад "Чашка \"Poranek\"". Саму зворотну скісну риску записують як \\.

Правильний синтаксис ще не означає, що дані правильні. Значення "39.90" — це текст, а 39.90 — число. Обидва допустимі в JSON, але програма, яка очікує число, може відхилити текст. Так само null, порожній текст "" і відсутність ключа — це різні ситуації, значення яких залежить від застосунку.

Також уникайте повторення тієї самої назви ключа в одному об’єкті. Програми можуть по-різному інтерпретувати такі дані, наприклад зберегти лише останнє значення.

Як відкрити й перевірити файл JSON?

Файл JSON можна відкрити у звичайному текстовому редакторі. Зручнішим буде редактор коду, який підсвічує синтаксис, упорядковує відступи й указує на помилки. Щоб просто прочитати файл, не потрібно запускати сервер чи встановлювати середовище розробки.

Якщо застосунок не приймає файл, перевірте його в такій послідовності:

  1. Зробіть копію файлу перед редагуванням.
  2. Перевірте синтаксис інструментом валідації JSON: лапки, коми та закривальні дужки.
  3. Зіставте назви полів і типи значень із документацією застосунку.
  4. Перевірте обов’язкові поля й допустимі значення, наприклад код валюти або формат дати.

JSON не має окремого типу для дат, тому їх часто записують як текст за узгодженими правилами. Вимоги до структури можна описати за допомогою JSON Schema — правил, що визначають, зокрема, обов’язкові поля та їхні типи.

Не вставляйте файли з паролями, ключами API або персональними даними у випадкові онлайн-валідатори. Такі дані перевіряйте локально в надійному інструменті.

Коли вибрати JSON, а коли — інший формат?

JSON добре підходить для даних із вкладеною структурою: наприклад, замовлення містить клієнта, адресу та список товарів. Для простої таблиці, призначеної для роботи в табличному редакторі, зручнішим може бути CSV — формат, що записує дані в рядках і стовпцях.

Під час інтеграції зі стороннім сервісом формат не можна вибирати довільно — його визначає документація сервісу. Почніть зі зразка повідомлення, якого вимагає сервіс, змініть кілька значень і перевірте як синтаксис, так і відповідність полів вимогам. Це допоможе відрізнити помилку в записі JSON від помилки в даних, які очікує програма.

Дивіться також: Що таке CDN?

Читайте також

Дізнайтеся, як PHP-FPM обробляє запити PHP, чим відрізняється від вебсервера та як налаштувати процеси під трафік і ресурси хостингу.
Дізнайтеся, як BIND обслуговує DNS, чим відрізняються його серверні ролі та коли варто розгортати його самостійно замість керованої послуги.
Дізнайтеся, що означають польський реєстр і номер REGON, чим вони відрізняються від NIP та KRS і як перевірити дані підприємства.