JSON (JavaScript Object Notation) — это легкий формат обмена данными, основанный на синтаксисе JavaScript. JSON используют в веб-разработке, когда нужно передать данные между серверами и приложениями.
Пример, как выглядит JSON-объект:
{
«name»: «John»,
«age»: 30,
«city»: «New York»,
«hobbies»: [«swimming», «reading», «traveling»]
}
Этот JSON-объект описывает человека с именем John возрастом 30 лет, который живет в городе New York и имеет несколько хобби: плавание, чтение и путешествия.
Ключи («name», «age», «city», «hobbies») — это строки, а значения («John», 30, «New York», [«swimming», «reading», «traveling»]) могут быть строками, числами, массивами, объектами или другого типа, который поддерживает формат. О них расскажем ниже.
Как появился JSON
JSON в начале 2000-х годов создал программист и эксперт по JavaScript Дуглас Крокфорд (Douglas Crockford). Он разработал JSON как легковесный формат обмена данными, который был бы простым для чтения и записи и человеком, и машиной.
Исторически JSON развивался из языка программирования JavaScript. Впервые его упоминает в работе JavaScript: The Good Parts Дуглас Крокфорд. В этой книге он представил JSON как подмножество языка JavaScript.
JSON быстро стал популярным форматом для обмена данными в веб-приложениях из-за своей простоты и универсальности. Его поддерживают практически все языки программирования — и он стал стандартом для работы между клиентским и серверным ПО в интернете.
Сейчас JSON используют в разработке мобильных приложений, облачных решений и интернете вещей (IoT).
Как устроен JSON
Синтаксис JSON достаточно простой и легко читается. Разберем основные элементы его синтаксиса.
Объекты (Objects)
Это набор данных, которые представляют в виде пар «ключ — значение». Каждый ключ — это строка, а каждое значение — какая-то информация или другой объект.
Основные признаки:
🟢 Записываются в фигурных скобках {}.
🟢 Отделяются от ключей и значений двоеточием :.
🟢 Каждая пара «ключ — значение» разделяется запятой ,.
🟢 Ключи заключаются в двойные кавычки «».
{
«ключ1»: «значение1»,
«ключ2»: «значение2»
}
Массивы (Arrays)
Массивы в JSON — это упорядоченные списки данных, внутри которых есть разные типы информации. Признаки массивов:
🟢 Массивы в JSON представлены в квадратных скобках [].
🟢 Элементы массива разделяются запятой ,.
Например, массив JSON может содержать список фруктов:
[«яблоко», «банан», «апельсин»]
Или разные объекты:
[
{«имя»: «Джон», «возраст»: 30},
{«имя»: «Анна», «возраст»: 25}
]
Здесь каждый элемент массива — это объект, где описана информация о разных людях.
Строки (Strings)
Это текстовая информация, которая нужна, чтобы представлять данные: имена, описания, сообщения и т. д. В строках могут быть буквы, цифры, специальные символы и пробелы.
Примеры строк в JSON:
«Привет, мир!»
«Это строка с цифрами: 123456»
«Специальные символы: !@#$%^&*()»
Строки в JSON используют для передачи текстовой информации между приложениями и системами.
Если в строках есть кавычки, их записывают так:
{ «legal_entity»: «ООО \»Василёк\»» }
Числа (Numbers)
Числа в JSON нужны для количественных данных: возраста, количества, даты или любого другого числового параметра. Числа в JSON могут быть положительными или отрицательными, целыми или дробными.
Примеры чисел в JSON:
3.14
1.23e5 // Эквивалентно 1.23 * 10^5
Логические значения (Boolean)
JSON поддерживает два логических значения: true и false.
{
«isActive»: true,
«isAdmin»: false,
«isMember»: true,
«isVerified»: false
}
В этом примере каждое логическое значение указывает на какое-то состояние или свойство объекта:
🟡 «isActive»: true значит, что учетная запись активна;
🟡 «isAdmin»: false значит, что пользователь не администратор системы;
🟡 «isMember»: true значит, что пользователь — участник какой-то группы;
🟡 «isVerified»: false значит, что аккаунт пользователя не подтвержден.
Пустые значения
Они показывают, что в параметре ничего не содержится. Пример пустого значения:
{
«bornOn»: «27.12.1994»
«diedOn»: null
}
В чём преимущества JSON
У JSON есть преимущества, которые делают его популярным форматом для обмена данными.
➡️ Простота чтения человеком. У JSON простой и понятный синтаксис, что делает его удобным инструментом для разработчиков. JSON — текстовый формат данных, поэтому для его чтения и записи ничего не нужно преобразовывать в специальный бинарный формат.
➡️ Иерархическая структура. С JSON можно создать сложные объекты и вложенные структуры. Поэтому с ним легко передавать структурированные данные.
➡️ Легкая поддержка. У многих популярных языков программирования в составе есть функции для работы с JSON, а в JavaScript эта нотация встроена прямо в язык.
➡️ Читаемость. У JSON нет сложных элементов или функций, поэтому приложения легко разрабатывать, тестировать и оптимизировать.
Что такое JSON5
JSON5 — это расширенный формат JSON, в котором есть дополнительные возможности и инструменты для разработки. С JSON5 можно:
- Включать комментарии в код — так легче документировать и понимать структуры данных.
- Опускать запятые между элементами массива или объекта и делать код более минималистичным и удобным.
- Использовать и однострочные, и многострочные объекты без специальных символов.
А еще у JSON5 есть поддержка дополнительных типов данных, например Infinity, NaN и -Infinity. При этом любой JSON5-документ работает и с JSON.
Как работать с JSON
Для чтения JSON из файла или строки сначала нужно загрузить его в память как текстовую строку или байтовый поток. Потом — преобразовать в структуру данных. У многих языков программирования уже есть встроенные методы для разбора (парсинга) JSON — они автоматически преобразуют его в нужные структуры данных.
Чтобы записать данные в формате JSON, преобразуйте структуру данных — например, объекты и массивы — в формат JSON. Потом сохраните всё в файл или передайте по сети в виде текстовой строки.
Пример работы с JSON на JavaScript:
// Чтение JSON из строки
const jsonStr = ‘{«name»: «John», «age»: 30}’;
const obj = JSON.parse(jsonStr);
console.log(obj.name); // Выведет «John»// Запись JSON в строку
const obj2 = { name: ‘Jane’, age: 25 };
const jsonStr2 = JSON.stringify(obj2);
console.log(jsonStr2); // Выведет ‘{«name»:»Jane»,»age»:25}’
Пример работы с JSON на Python:
import json
# Чтение JSON из файла
with open(‘data.json’, ‘r’) as f:
data = json.load(f)
print(data[‘name’]) # Выведет «John»# Запись JSON в файл
data2 = {‘name’: ‘Jane’, ‘age’: 25}
with open(‘data2.json’, ‘w’) as f:
json.dump(data2, f)
Главное о JSON
🟢 JSON (JavaScript Object Notation) — это легковесный формат обмена данными, который основан на двух структурах: объектах и массивах.
🟢 Объекты в JSON — это неупорядоченные коллекции пар «ключ — значение».
🟢 Объекты заключаются в фигурные скобки ({}).
🟢 Массивы в JSON — это упорядоченные списки значений.
🟢 JSON поддерживает различные типы данных: строки, числа, логические значения (true/false), объекты, массивы и значение null.
🟢 JSON легко читается и человеком, и компьютером.
Добавить комментарий