Java 언어와 마찬가지로 JavaScript에서도 객체를 직렬화 및 역직렬화하여 객체를 저장할 수 있습니다. ECMAScript 5 표준에서 JavaScript의 객체 직렬화는 JSON.stringify()를 통해 구현되고, 역직렬화는 JSON.parse()를 통해 구현됩니다.
ECMAScript 3 표준만 지원하는 브라우저의 경우 Douglas Crockford(https://github.com/douglascrockford/JSON-js)가 작성한 json2.js를 사용할 수 있습니다.
객체를 직렬화하는 과정에서 NaN, Infinity 및 -Infinity는 "null"로 직렬화됩니다. Date 객체는 해당 시간을 나타내는 문자열로 직렬화됩니다(그러나 JSON.parse()를 사용하여 역직렬화하면 time 문자열은 일반 문자열로 존재하며 Date 객체로 재구성되지 않습니다.
JSON.stringify()를 사용하여 객체를 직렬화하는 경우 직렬화된 속성은 객체 자체(Own)의 열거 가능한 속성으로 제한됩니다. JSON.stringify()가 실행 중일 때 JavaScript는 먼저 직렬화해야 하는 객체에 toJSON() 메서드가 있는지 확인합니다. toJSON() 메서드가 있으면 해당 메서드가 호출되고 반환된 결과가 반환값으로 사용됩니다. 직렬화 대상. toJSON() 메서드가 없으면 기본 직렬화 메서드가 사용됩니다.