Раптово він увірвався у сферу веб-розробки на початку 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 як працювати і докладний посібник? Розглянемо
читання, запис, оновлення та видалення даних:
- Читання
Читання даних з формату 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"
- Запис
Запис даних у формат 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. Розглянемо найпопулярніші з них:
- JavaScript
У JavaScript робота з JSON дуже проста завдяки вбудованим методам JSON.parse() і JSON.stringify(). Однак, є й інші бібліотеки, які надають додаткові функціональні можливості. Наприклад:
- lodash – надає безліч утиліт для роботи з даними, включно з методами для глибокого клонування JSON і маніпуляцій з даними;
- json-bigint – бібліотека для роботи з великими числами (зокрема числами, що перевищують максимальні значення JavaScript), яка підтримує JSON з великими цілочисельними значеннями.
- Python
Python також має вбудовані модулі для роботи з JSON, які полегшують читання і запис даних у цьому форматі. Однак існують додаткові бібліотеки з додатковими можливостями:
- json (вбудований модуль) – надає функції json.dumps() і json.loads() для серіалізації та десеріалізації JSON;
- ujson – бібліотека, яка є швидким замінником для вбудованого модуля json. Вона забезпечує вищу продуктивність завдяки використанню сі-розширень;
- simplejson – сумісна з вбудованим модулем json, але володіє більш розширеним функціоналом і підтримкою додаткових опцій.
- Java
У мові програмування Java існує кілька бібліотек для роботи з JSON, які дають змогу легко парсити і створювати JSON-структури:
- Jackson – одна з найпопулярніших бібліотек для роботи з JSON в Java. Вона має високу продуктивність і підтримує різні способи обробки JSON-даних;
- Gson – бібліотека, що надає простий API для серіалізації та десеріалізації об’єктів Java в JSON і навпаки;
- JSON.simple – це легковага бібліотека, що надає мінімальний і простий API для роботи з JSON у Java.
- 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 і як із ним працювати. Побачили, що це – не просто формат обміну даними, це сполучна ланка, яка об’єднує світ даних. Його легкість, універсальність і простота стали невід’ємною частиною сучасної розробки та програмування. Завдяки цьому, розробники можуть створювати ефективніші та гнучкіші додатки, які легко взаємодіють один з одним.
🤓 Хочеш більше дізнатися про JSON і потрібна допомога чи порада? 💡 Задай свої питання або поділися своїми думками про JSON тут! 💬