Анализ данных • 01 ноября 2024 • 5 мин чтения

Что такое формат JSON

Рассказываем, как хранить данные, чтоб они были понятны пользователю и компьютеру.

Что такое JSON и как он устроен

JSON (JavaScript Object Notation) — это текстовый формат обмена данными, который используется для хранения данных и их передачи между различными системами и приложениями. Он был создан на основе синтаксиса JavaScript, но стал независимым от него и используется во многих других языках, таких как Python, Ruby, Java, C# и др.

JSON представляет собой удобный для чтения человеком формат, где данные организованы в виде пар ключ — значение. Основной принцип JSON — это упрощение структуры данных, что делает его более понятным и лёгким в использовании.

Структура JSON:

● Ключи всегда записываются как строки в двойных кавычках.
● Значения могут быть разного типа: строки, числа, булевы значения, объекты, массивы или null.
● Каждый элемент разделяется запятой, а объект или массив начинаются и заканчиваются с фигурных или квадратных скобок соответственно.

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

Умение работать с такими форматами, как JSON и XML, — обязательный навык не только для веб-разработчика, но и для системного аналитика. На курсе «Системный аналитик» наставники не только научат разбираться в нужных форматах, но и помогут освоить мощный набор навыков и инструментов: SQL, REST API, Postman, Figma и др.

Преимущества JSON перед другими форматами

  1. Читаемость и простота. Формат JSON интуитивно понятен как для людей, так и для машин. Его структура легка для восприятия и не требует сложных правил форматирования, как в случае с XML, где присутствуют теги. Даже люди без глубоких технических знаний могут легко интерпретировать JSON-файлы.
  2. Малый объём данных. JSON использует менее громоздкую структуру по сравнению с XML, так как в нём отсутствуют теги открытого и закрытого типа. Это позволяет существенно сократить объём передаваемых данных, что особенно важно для сетевых приложений и веб-сервисов, где важен размер трафика.
  3. Гибкость в представлении данных. JSON поддерживает широкий набор типов данных (строки, числа, булевы значения, массивы и объекты), что позволяет легко и эффективно представлять сложные структуры данных. Это делает его более универсальным по сравнению с CSV, который работает только с табличными данными.
  4. Лёгкость интеграции с языками программирования. JSON напрямую поддерживается в большинстве современных языков программирования. Его структура аналогична объектам и массивам в JavaScript, что делает его естественным вариантом выбора для обмена данными между фронтендом и бэкендом. Многие языки предлагают встроенные библиотеки для работы с JSON, что упрощает его обработку.
  5. Широкая поддержка. JSON поддерживается большинством современных веб-браузеров, API и серверов. Это делает его стандартом для обмена данными в веб-приложениях и веб-службах.

Как работать с JSON

Работа с JSON достаточно проста и эффективна благодаря широкому распространению и поддержке во многих языках программирования и инструментах, например JavaScript, Python, Java, PHP, Ruby, C# и др. Ниже приведены примеры работы с JSON на некоторых из них.

● JavaScript. В JavaScript JSON является нативным форматом, и для работы с ним используются встроенные методы JSON.parse() и JSON.stringify()

Для преобразования JSON-строки в объект:

const jsonString = '{"name": "Yura", "age": 30}';
const obj = JSON.parse(jsonString);
console.log(obj.name); // "Yura"

Для преобразования объекта в JSON-строку:

const obj = { name: "Alexei", age: 53};
const jsonString = JSON.stringify(obj);
console.log(jsonString); // '{"name":"Alexei","age":53}'

● Python. В Python работа с JSON осуществляется с помощью встроенного модуля json.

Для чтения JSON:

import json
json_string = '{"name": "Alice", "age": 29}'
data = json.loads(json_string)
print(data["name"]) # "Alice"

Для записи объекта в JSON:

import json
data = {"name": "Bob", "age": 31}
json_string = json.dumps(data)
print(json_string) # '{"name": "Bob", "age": 31}'

Парсинг JSON означает преобразование данных, представленных в формате JSON, в объекты, которые можно использовать в коде программы. Процесс парсинга упрощён благодаря наличию готовых библиотек и встроенных функций во многих языках программирования. Например, в JavaScript это делается с помощью метода JSON.parse(), который автоматически преобразует строку JSON в объект.

Сериализация — это процесс преобразования объектов или структур данных в строку JSON, чтобы передать или сохранить её. Это особенно полезно при передаче данных через веб-протоколы, такие как HTTP, между клиентом и сервером. Например, в Python используется метод json.dumps(), который преобразует объект в JSON-строку для последующего использования или передачи.

Одной из основных сфер применения JSON является обмен данными через API. Веб-приложения активно используют JSON для отправки запросов и получения ответов. Например, при работе с REST API данные в запросе или ответе часто передаются в формате JSON. Клиент отправляет HTTP-запрос, который содержит JSON-данные, а сервер возвращает ответ также в формате JSON. Это позволяет обеспечить унифицированное взаимодействие между клиентами и серверами.

Пример запроса на получение данных из API с использованием JSON:

curl -X GET "https://api.example.com/data" -H "Accept: application/json"

При работе с JSON важно убедиться в его корректности. Существуют специальные онлайн-инструменты и библиотеки для валидации JSON. Эти инструменты проверяют структуру документа и наличие ошибок (например, пропущенные скобки или кавычки). Валидация особенно важна при передаче данных через API, чтобы избежать ошибок при обработке данных на стороне сервера или клиента.

Примеры формата данных JSON

JSON представляет собой гибкий формат данных, который может использоваться для представления различных структур данных — от простых значений до сложных иерархий. Рассмотрим несколько примеров, демонстрирующих, как JSON может быть использован для хранения и передачи данных.

1. Простой объект

Простейший пример JSON может представлять собой объект с несколькими ключами и значениями:

{
"name": "Alice",
"age": 28,
"isHuman": true
}

В этом примере мы видим три ключа: "name" (строка), "age" (число), и "isHuman" (булево значение). Этот JSON-объект может быть использован для представления данных о существе.

2. Массив объектов

JSON позволяет хранить не только одиночные объекты, но и массивы, что делает его удобным для представления коллекций данных — например, списка пользователей или товаров.

[
{
"name": "Alice",
"age": 30,
"isEmployed": true
},
{
"name": "Bob",
"age": 25,
"isEmployed": false
}
]

3. Вложенные объекты

JSON поддерживает вложенные структуры, что позволяет представлять более сложные данные, такие как объекты внутри других объектов.

{
"name": "Alina",
"address": {
"street": "Khalglar Dostlugu",
"city": "Baku",
"postalCode": 12345
},
"phoneNumbers": [
{
"type": "home",
"number": "123-456-7890"
},
{
"type": "work",
"number": "111-14-1988"
}
]
}

В этом примере объект "address" является вложенным объектом внутри основного объекта, а "phoneNumbers" — это массив объектов, представляющий несколько номеров телефонов.

4. Пример ответа API в формате JSON

JSON часто используется для передачи данных через API. Ниже приведён пример типичного ответа API с данными о пользователе:

{
"user": {
"id": 12345,
"username": "alina",
"email": "alina@mf.com",
"profile": {
"firstName": "Alina",
"lastName": "Nabieva",
"age": 29
},
"friends": [
{
"id": 54321,
"username": "xenia"
},
{
"id": 98765,
"username": "oxs"
}
]
}
}

В этом примере JSON используется для представления ответа сервера с информацией о пользователе, его профиле и списке друзей.

Создание файла формата JSON

Создать JSON-файл очень просто, так как это обычный текстовый файл с расширением .json, в котором хранятся данные в описанном формате. Ниже приведены основные шаги по созданию JSON-файла, а также примеры его создания в разных редакторах и программных средах.

1. Создание JSON-файла вручную

Самый простой способ создать JSON-файл — это использовать текстовый редактор, такой как Notepad (Windows), TextEdit (Mac), или более продвинутые редакторы, такие как Visual Studio Code или Sublime Text.

Для создания JSON-файла требуются следующие шаги:

1. Открыть любой текстовый редактор.
2. Ввести JSON-данные, соблюдая правильный синтаксис (ключи в кавычках, значения в нужном формате, использование фигурных и квадратных скобок).


{
"name": "Bob",
"age": 30,
"isEmployed": true,
"skills": ["JavaScript", "Python", "C++"]
}

3. Сохранить файл с расширением .json, выбрав формат «Все файлы» при сохранении и указав желаемое имя, например data.json.
4. Файл необходимо сохранить в кодировке UTF-8, так как это стандартная кодировка для JSON-файлов.

2. Создание JSON-файла в различных языках программирования

Во многих языках программирования есть встроенные или сторонние библиотеки, которые позволяют легко создавать JSON-файлы. Рассмотрим примеры на нескольких популярных языках.

Python. В Python можно создать JSON-файл с помощью встроенного модуля json. Пример программы, которая записывает данные в JSON-файл:


import json
data = {
"name": "Petya",
"age": 30,
"isEmployed": True,
"skills": ["JavaScript", "Python", "C++"]
}

with open("data.json", "w") as json_file:
json.dump(data, json_file, indent=4)

В этом примере данные записываются в файл data.json с отступами для удобства чтения.

●    JavaScript (Node.js). В Node.js можно легко создать JSON-файл с использованием встроенного модуля fs для работы с файловой системой.

const fs = require('fs');

const data = {
name: "John",
age: 30,
isEmployed: true,
skills: ["JavaScript", "Python", "HTML"]
};

fs.writeFile("data.json", JSON.stringify(data, null, 4), (err) => {
if (err) {
console.error(err);
return;
}
console.log("File has been created");
});

Здесь метод JSON.stringify() преобразует объект в строку JSON, которая затем записывается в файл.

Как открыть JSON на компьютере

Открыть JSON-файл на компьютере можно различными способами в зависимости от того, как вы планируете работать с файлом: просто просматривать его содержимое, редактировать или программно обрабатывать. Ниже перечислены основные методы открытия и работы с JSON-файлами.

1. Открытие JSON в текстовых редакторах

Поскольку JSON-файлы являются обычными текстовыми файлами, их можно открыть с помощью любого текстового редактора. Это самый простой способ, если нужно лишь просмотреть или отредактировать файл вручную.

● Notepad («Блокнот») на Windows. Открыть JSON-файл можно через меню Файл -> Открыть, или перетащите файл в окно «Блокнота». JSON будет отображён как обычный текст. При необходимости его можно отредактировать и сохранить.
● TextEdit на macOS также поддерживает открытие JSON-файлов как текстовых файлов. Открыть файл можно через меню File -> Open или просто перетащить файл в программу.
● Более продвинутые текстовые редакторы, такие как Visual Studio Code, Sublime Text или Notepad++, предоставляют подсветку синтаксиса, форматирование и инструменты для более удобной работы с JSON. Например, в Visual Studio Code есть встроенная поддержка JSON. Открыв файл, вы увидите автоматическую подсветку ключей и значений, что облегчает чтение и редактирование.

2. Открытие JSON в браузере

Веб-браузеры, такие как Yandex Browser, Google Chrome, Mozilla Firefox, Microsoft Edge, также поддерживают просмотр JSON-файлов. Если вы перетащите JSON-файл в окно браузера, он отобразит его структуру в удобном формате.

Статью подготовили:
Богдан Сиротич
Яндекс Практикум
Редактор
Анастасия Павлова
Яндекс Практикум
Иллюстратор

Дайджест блога: ежемесячная подборка лучших статей от редакции

Поделиться

Успейте начать учебу в Практикуме до конца ноября со скидкой 20%

Fri Nov 15 2024 15:01:37 GMT+0300 (Moscow Standard Time)