Как и язык Java, объекты могут быть сериализованы и десериализованы в JavaScript, тем самым сохраняя объекты. В стандарте Ecmascript 5 сериализация объекта в JavaScript реализована через json.stringify (), в то время как десериализация реализуется через json.parse ():
Кода -копия выглядит следующим образом:
var o = {x: 1, y: 29, z: 42};
var s = json.stringify (o);
console.log (s); // {"x": 1, "y": 29, "z": 42}
var c = json.parse (s);
console.log (c); // Object {x = 1, y = 29, z = 42}
Для браузеров, которые поддерживают только стандарт Ecmascript 3, вы можете использовать json2.js, написанный Дугласом Крокфордом (https://github.com/douglascrockford/json-js).
Во время процесса сериализации объекта NAN, Infinity и -infinity будут сериализованы на «NULL»; Объект Date будет последовательна на строку, представляющую соответствующее время (но при десериализовании с использованием json.parse () строка времени будет существовать в виде обычной строки и не будет перестраиваться в объект даты).
При использовании json.stringify () для сериализации объекта сериализованное свойство ограничено перечисленным свойством самого объекта (собственного). Когда json.stringify () запускается, JavaScript сначала выяснит, есть ли метод tojson () в объекте, который необходимо сериализовать. Если существует метод tojson (), будет вызван метод, и результат, который он возвращает, используется в качестве цели сериализации. Если метод tojson () не существует, используется метод сериализации по умолчанию.