Знайомство з JSON

Відкрита

1.1 Поява JSON

JSON (JavaScript Object Notation) — це текстовий формат, який використовується для обміну даними. Його було розроблено на початку 2000-х років Дугласом Крокфордом і він став популярним завдяки своїй простоті і легкості використання.

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

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

Основні характеристики JSON

Людинозрозумілість:

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

Мовна незалежність:

Хоча JSON спочатку базується на синтаксисі JavaScript, він може використовуватись з будь-якою мовою програмування. Багато мов програмування надають вбудовані бібліотеки для роботи з JSON.

Легкість парсингу:

Парсинг (від англ. "parsing") — це процес розбору та аналізу структури даних, зазвичай тексту або коду, для виокремлення значущої інформації. У контексті програмування парсинг часто застосовується для обробки текстових даних. JSON можна легко парсити і генерувати як на клієнтській, так і на серверній стороні. Зараз у кожній мові програмування існує бібліотека, яка дозволяє легко перетворити об'єкт у JSON і назад.

Стандарт і явний лідер:

Ще 10 років тому JSON змагався з XML як стандарт API. Зараз JSON переміг і є явним лідером. У API вашого бекенду ви можете підтримувати тільки JSON, і цього буде достатньо, навіть якщо ваш API призначений для виклику іншими серверами.

1.2 Структура JSON

JSON представляє собою набір пар "ключ-значення", і його синтаксис складається з двох основних структур:

Об'єкти: Об'єкти являють собою неупорядковані набори пар "ключ-значення". Ключі — це рядки, а значення можуть бути будь-якого типу даних, підтримуваного JSON.

{
    "name": "John",
    "age": 30,
    "isStudent": false,
    "courses": ["Math", "Science"],
    "address": {
        "city": "New York",
        "zipCode": "10001"
    }
}

Масиви/Списки: Масиви представляють собою упорядковані набори значень (схожі на списки в Python). Значення можуть бути будь-якого типу даних, підтримуваного JSON.

["Apple", "Banana", "Cherry", 100, 3.14, true]

Дуже схоже на об'єкти Python, чи не так?

Вся справа в тому, що JSON — це фактично стандарт запису даних в JavaScript, а JavaScript свого часу був натхненний Python. Тож використовувати JSON вам сподобається.

1.3 Типи даних в JSON

JSON підтримує такі типи даних:

Рядки: представляються у подвійних лапках.

"name": "John"

Числа: можуть бути цілими або з плаваючою крапкою.

"age": 30

Об'єкти: Неупорядковані набори пар "ключ-значення".

"address": {
    "city": "New York",
    "zipCode": "10001"
}

Масиви/Списки: Упорядковані набори значень.

"courses": ["Math", "Science"]

Булеві значення: true або false.

"isStudent": false

На відміну від Python, true і false тут пишуться з маленької літери.

null: Представляє пусте значення.

"middleName": null

Дата і час: передаються як рядок.

{
    "datetime": "2023-05-15T14:30:00Z",
    "date": "2023-05-15",
    "time": "14:30:00"
}

Раніше їх інколи передавали як число у форматі UNIX timestamp, але цей підхід відійшов у минуле.

2
Задача
Модуль 1: Python Core,  13 рівень0 лекція
Недоступна
Сортування сміття.
Сортування сміття.
2
Задача
Модуль 1: Python Core,  13 рівень0 лекція
Недоступна
Виправлення.
Виправлення.
Коментарі
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
Для цієї сторінки немає коментарів.