02. JSON and JavaScript

JSON - это стандарт передачи данных, а не часть языка JS. JSON хоть и был списан c нотации JS объектов не является полноправной частью спецификации JS.

Синтаксис формата JSON является подмножеством синтаксиса языка JS и не может использоваться для представления всех возможных значений, допустимых в JavaScript:

  • Ключи в JSON являются только строки в двойных кавычках.

  • Ключ в JSON может быть любой валидной строкой.

  • Значения в JSON должны быть одним из возможных допустимых типов данных: объекты, массивы, строки, конечные числовые значения, true, false и null.

  • Значения NaN, Infinity и -Infinity преобразуются в значение null.

  • Значением в JSON не может быть функция.

  • В конце JSON не нужно ставить точку с запятой.

Полученный JSON в JS необходимо разобрать и преобразовать в JS-объект при помощи каких-либо функций. Для сериализации и восстановления объектов JavaScript стандартом ES5 предоставляются встроенные функции JSON.stringify() и JSON.parse():

const o = { x: 1, y: { z: [false, null, ""] } };
const s = JSON.stringify(o); // s == "{"x":1,"y":{"z":[false,null,""]}}"
const p = JSON.parse(s); // p is deep copy of o

Last updated