15.09.2023
12 хвилин читання

Що таке JSON і як з ним працювати

Раптово він увірвався у сферу веб-розробки на початку 21 століття, запропонувавши свіжий і простий формат обміну даними, здатний замінити громіздкий XML. JSON (JavaScript Object Notation) – це простий, популярний і легкий для читання формат обміну даними. Він був розроблений з метою забезпечення зручного способу передачі інформації між додатками. Історія JSON бере свій початок 2001 року, коли Дуглас Крокфорд представив цей формат, щоб полегшити роботу з даними в Ajax-додатках;

Розуміння структури

Структура JSON проста і зрозуміла. Вся інформація зберігається у вигляді пар ключ-значення. Розберемо кожен елемент структури:

  • Ключі

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

🚀 JavaScript Start: Вчися з Нуля, Ставай Професіоналом!

🌟 Чому обирають наш курс:

  • Вивчення основ JavaScript з нуля в короткі терміни
  • Онлайн навчання та необмежений доступ до відеоуроків.
  • Підтримка в чаті Slack.

🎓 Ніяких особливих вимог, крім твого бажання вчитися!

🎯 Готовий до кар’єри в програмуванні? Приєднуйся до JavaScript Start від Foxminded! 👨‍💻

👆👆👆

Приклад:

{

  "name": "John",

  "age": 30,

  "isStudent": true

}

Тут “name”, “age” і “isStudent” – це ключі, а їхні значення відповідно “John”, 30 і true.

  • Значення

Значення в JSON можуть бути різними типами даних, включно з рядками (текст), числами, логічними значеннями (true або false), null (порожнє значення), масивами або вкладеними об’єктами. Значення можуть бути укладені в подвійні лапки (для рядків), без лапок (для чисел, логічних значень і null) або в квадратні дужки чи фігурні дужки (для масивів і об’єктів відповідно).

Приклад:

{

  "name": "John",       // Строкове значення

  "age": 30,            // Числове значення

  "isStudent": true,    // Логічне значення

  "address": null       // значення null (пусто)

}
  • Масиви

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

Приклад:

{

  "fruits": ["apple", "banana", "orange"]

}

У цьому прикладі “fruits” – це ключ, а його значення – масив з елементами “apple”, “banana” і “orange”.

  • Об’єкти

Об’єкти являють собою невпорядковані набори ключів і значень. Вони містяться у фігурних дужках і дають змогу структурувати дані складніше, вкладаючи об’єкти один в одного.

Приклад:

{

  "person": {

    "name": "Alice",

    "age": 25

  }

}

У цьому прикладі “person” – ключ, а його значення являє собою вкладений об’єкт із ключами “name” і “age”.

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

Серіалізація та десеріалізація

Серіалізація і десеріалізація – це два важливі процеси, пов’язані з JSON, які дають змогу перетворити дані у формат JSON і назад. Давайте розберемо кожен із них докладніше:

Серіалізація JSON – це процес перетворення даних з об’єктів і структур даних у рядок JSON. Коли ми серіалізуємо дані, ми робимо їх придатними для передавання мережею або збереження на диску в текстовому форматі.

Приклад:

Припустимо, у нас є об’єкт з інформацією про користувача в JavaScript:

const user = {

  name: "John",

  age: 30,

  email: "john@example.com"

};

Щоб серіалізувати цей об’єкт у формат JSON, ми використовуємо метод JSON.stringify():

const jsonString = JSON.stringify(user);

console.log(jsonString);

// Выведет: '{"name":"John","age":30,"email":"john@example.com"}'

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

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

Приклад:

Припустимо, у нас є рядок JSON, який ми отримали ззовні:

const jsonString = '{"name":"John","age":30,"email":"john@example.com"}';

Щоб десеріалізувати цей рядок JSON в об’єкт JavaScript, ми використовуємо метод JSON.parse():

const user = JSON.parse(jsonString);

console.log(user.name); // Виведе: "John"

console.log(user.age); // Виведе: 30

console.log(user.email); // Виведе: "john@example.com"

Тепер рядок JSON перетворено назад в об’єкт user, і ми можемо використовувати його в нашій програмі для роботи з даними.

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

Робота з JSON у JavaScript 

Цікавить в json як працювати і докладний посібник? Розглянемо 

читання, запис, оновлення та видалення даних:

  1. Читання 

Читання даних з формату JSON і перетворення їх в об’єкти JavaScript здійснюється за допомогою методу JSON.parse(). Цей метод приймає як аргумент рядок JSON і повертає відповідний JavaScript об’єкт.

Приклад:

const jsonString = '{"name":"John","age":30,"email":"john@example.com"}';

const user = JSON.parse(jsonString);

console.log(user.name); // Виведе: "John"

console.log(user.age); // Виведе: 30

console.log(user.email); // Виведе: "john@example.com"
  1. Запис

Запис даних у формат JSON виконується за допомогою методу JSON.stringify(). Цей метод приймає об’єкт JavaScript і перетворює його на рядок JSON.

Приклад:

const user = {

  name: "John",

  age: 30,

  email: "john@example.com"

};

const jsonString = JSON.stringify(user);

console.log(jsonString);

// Выведет: '{"name":"John","age":30,"email":"john@example.com"}'
  • Оновлення

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

Приклад:

const jsonString = '{"name":"John","age":30,"email":"john@example.com"}';

const user = JSON.parse(jsonString);

// Оновлюємо значення "age"

user.age = 31;

// Перетворюємо оновлені дані у формат JSON

const updatedJsonString = JSON.stringify(user);

console.log(updatedJsonString);

// Виведе: '{"name":"John","age":31,"email":"john@example.com"}'
  • Видалення даних

Щоб видалити дані з об’єкта JSON, просто використовуйте оператор delete для відповідного ключа.

Приклад:

const jsonString = '{"name":"John","age":30,"email":"john@example.com"}';

const user = JSON.parse(jsonString);

// Удаляем ключ "email"

delete user.email;

// Преобразуем измененные данные обратно в формат JSON

const updatedJsonString = JSON.stringify(user);

console.log(updatedJsonString);

// Выведет: '{"name":"John","age":30}'

Як наслідок, ви можете легко читати, записувати, оновлювати і видаляти дані, використовуючи методи JSON.parse() і JSON.stringify().

Бібліотеки 

У різних мовах програмування існує безліч бібліотек, які полегшують роботу з JSON. Розглянемо найпопулярніші з них:

  1. JavaScript

У JavaScript робота з JSON дуже проста завдяки вбудованим методам JSON.parse() і JSON.stringify(). Однак, є й інші бібліотеки, які надають додаткові функціональні можливості. Наприклад:

  • lodash – надає безліч утиліт для роботи з даними, включно з методами для глибокого клонування JSON і маніпуляцій з даними;
  • json-bigint – бібліотека для роботи з великими числами (зокрема числами, що перевищують максимальні значення JavaScript), яка підтримує JSON з великими цілочисельними значеннями.
  1. Python

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

  • json (вбудований модуль) – надає функції json.dumps() і json.loads() для серіалізації та десеріалізації JSON;
  • ujson – бібліотека, яка є швидким замінником для вбудованого модуля json. Вона забезпечує вищу продуктивність завдяки використанню сі-розширень;
  • simplejson – сумісна з вбудованим модулем json, але володіє більш розширеним функціоналом і підтримкою додаткових опцій.
JSON библиотеки в Java
  1. Java

У мові програмування Java існує кілька бібліотек для роботи з JSON, які дають змогу легко парсити і створювати JSON-структури:

  • Jackson – одна з найпопулярніших бібліотек для роботи з JSON в Java. Вона має високу продуктивність і підтримує різні способи обробки JSON-даних;
  • Gson – бібліотека, що надає простий API для серіалізації та десеріалізації об’єктів Java в JSON і навпаки;
  • JSON.simple – це легковага бібліотека, що надає мінімальний і простий API для роботи з JSON у Java.
  1. C# (.NET)

Для роботи з JSON у середовищі .NET розробників радує велика кількість бібліотек з різними функціональними можливостями:

  • Newtonsoft.Json (тепер System.Text.Json) – це найпопулярніша бібліотека JSON у .NET. Вона надає багатий функціонал і хорошу продуктивність;
  • System.Text.Json – новий вбудований JSON-парсер і серіалізатор у .NET Core і .NET 5+. Він також має гарну продуктивність і є стандартним вибором для .NET проектів.

Це лише невеликий огляд бібліотек у різних мовах програмування. Кожна з них має свої особливості та застосовується залежно від вимог і завдань розробників. Завдяки цьому розробники можуть легко обмінюватися даними між різними системами та додатками.

📢 Підпишись на наш Ютуб-канал! 💡Корисні відео для програмістів вже чекають на тебе!

🔍 Обери свій курс програмування! 🚀 Шлях до кар’єри програміста починається тут!

Використання в реальних проектах

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

  • соціальні мережі (Twitter, Facebook тощо), де API популярних соціальних мереж надають дані у форматі JSON, даючи змогу розробникам отримувати інформацію про користувачів, пости, коментарі тощо;
  • додатки електронної комерції, де відбувається обмін даними між інтернет-магазинами та клієнтськими додатками, щоб передавати інформацію про товари, ціни, замовлення та доставку;
  • веб-додатки – для обміну даними між фронтендом і бекендом, з передачею інформації про користувачів, дії, налаштування тощо.
  • мобільні додатки – для отримання даних із зовнішніх API і передачі інформації на сервер.

І це тільки кілька прикладів…

Висновок

Ми розібралися, що таке json і як із ним працювати. Побачили, що це – не просто формат обміну даними, це сполучна ланка, яка об’єднує світ даних. Його легкість, універсальність і простота стали невід’ємною частиною сучасної розробки та програмування. Завдяки цьому, розробники можуть створювати ефективніші та гнучкіші додатки, які легко взаємодіють один з одним.

FAQ
Що таке JSON?

JSON - це формат обміну даними, заснований на тексті, і він є скороченням від JavaScript Object Notation. Незважаючи на назву, JSON є мовонезалежним.

У чому перевага JSON у порівнянні з XML?

JSON зазвичай коротший і простіший для читання людиною порівняно з XML. Крім того, його легше парсити і він нативно підтримується багатьма мовами програмування.

Чи можуть у JSON містяться коментарі?

Стандарт JSON не підтримує коментарі. Однак деякі парсери надають можливість їх використання, але це не є загальноприйнятою практикою.

Що таке JSONP?

JSONP (JSON зі зворотним викликом) - це метод обходу обмежень безпеки під час виконання крос-доменних запитів у веб-браузерах.

Як я можу перетворити JSON на об'єкт JavaScript?

Ви можете використовувати глобальну функцію JSON.parse(), щоб перетворити рядок JSON на об'єкт JavaScript.

Як мені перетворити об'єкт JavaScript назад у рядок JSON?

Для цього слугує функція JSON.stringify(), яка перетворює об'єкт JavaScript у строковий формат JSON.

🤓 Хочеш більше дізнатися про JSON і потрібна допомога чи порада? 💡 Задай свої питання або поділися своїми думками про JSON тут! 💬

Додати коментар

Ваш імейл не буде опубліковано. Обов'язкові поля відзначені *

Зберегти моє ім'я, імейл та адресу сайту у цьому браузері для майбутніх коментарів