JSON (JavaScript Object Notation) представляет легковесный формат хранения данных. JSON описывает структуру и организацию данных JavaScript. Простота JSON привела к тому, что в настоящий момент он является наиболее популярным форматом передачи данных в среде web, вытеснив другой некогда популярный формат xml.
Объекты JSON очень похожи на объекты JavaScript, тем более что JSON является подмножеством JavaScript. В то же время важно их различать: JavaScript является языком программирования, а JSON является форматом данных.
JSON поддерживает три типа данных: примитивные значения, объекты и массивы. Примитивные значения представляют стандартные строки, числа, значение null, логические значения true и false.
Объекты представляют набор простейших данных, других объектов и массивов. Например, типичный объект JSON:
{ "name": "Tom", "married": true, "age": 30 }
В javascript этому объекту соответствовал бы следующий:
const user = { name: "Tom", married: true, age: 30 }
Несмотря на общее сходство, в то же время есть и различия: в JSON названия свойств заключаются в двойные кавычки, как обычные строки. Кроме того, объекты JSON не могут хранить функции, переменные, как объекты javascript.
Объекты могут быть сложными:
{ "name": "Tom", "married": true, "age": 30, "company": { "name": "Microsoft", "address": "USA, Redmond" } }
Массивы в JSON похожи на массивы javascript и также могут хранить простейшие данные или объекты:
["Tom", true, 30]
Массив объектов:
[{ "name": "Tom", "married": true, "age": 30 },{ "name": "Alice", "married": false, "age": 23 }]
Для работы с форматом JSON в языке JavaScript предназначен JSON. Он позволяет преобразовать объект JavaScript в формат json и наоборот.
Для сериализации объекта javascript в json применяется функция JSON.stringify():
// объект javascript const user = { name: "Tom", married: false, age: 39 }; // объект json const serializedUser = JSON.stringify(user); console.log(serializedUser); // {"name":"Tom","married":false,"age":39}
Для обратной операции - десериализации или парсинга json-объекта в javascript применяется метод JSON.parse():
const user = { name: "Tom", married: false, age: 39 }; // сериализация const serializedUser = JSON.stringify(user); // десериализация const tomUser = JSON.parse(serializedUser); console.log(tomUser.name); // Tom