JSON

Введение в JSON

Последнее обновление: 1.11.2015

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 этому объекту соответствовал бы следующий:

var 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 применяется функция JSON.stringify():

var user = {
	name: "Tom",
	married: true,
	age: 30
};
var serializedUser = JSON.stringify(user);
document.write(serializedUser); // {"name":"Tom","married":true,"age":30}

Для обратной операции - десериализации или парсинга json-объекта в javascript применяется метод JSON.parse():

var user = {
	name: "Tom",
	married: true,
	age: 30
};
// сериализация
var serializedUser = JSON.stringify(user);
// десериализация
var tomUser = JSON.parse(serializedUser);
document.write(tomUser.name); // Tom
Помощь сайту
WebMoney
  • P378451176208
  • Z280152397659
ЮMoney/Яндекс-Деньги
  • 410011174743222
PayPal
  • metanit22@mail.ru
Перевод на карту
  • Номер карты: 4048415020898850