Продолжается набор новой группы на курс Enterprise Patterns! Старт курса 02.12.2024. Регистрируйтесь со скидкой 30% до 31.10.2024!
Узнать больше
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 здесь! 💬

Добавить комментарий

Ваш имейл не будет опубликован. Обязательные поля отмечены *

Сохранить моё имя, имейл и адрес сайта в этом браузере для будущих комментариев