JSPM

json-decycle

3.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 1316
  • Score
    100M100P100Q109611F
  • License GPL-2.0

(es6) stringify and parse cycled reference json

Package Exports

  • json-decycle

Readme

json-decycle

Stringify and parse cycled reference json by replacing cycled references to JSON-reference

Is project alive?

Yes, it works just fine.

Because this library have no dependencies, it's not required to have frequent updates.

If You encounter a bug or need to support special case, feel free to file an issue or open PR.

Usage

import { decycle, retrocycle } from "json-decycle";

var cycled = {
  foo: {},
  bar: {},
};

cycled.foo.bar = cycled.foo;
cycled.bar.foo = cycled.bar;

var result = JSON.stringify(cycled, decycle());
// result === '{"foo":{"bar":{"foo":{"$ref":"#/foo"}}},"bar":{"$ref":"#/foo/bar"}}'

JSON.parse(result, retrocycle());
// => {foo: {{foo: [cyclic reference], bar: [cyclic reference]}}, bar: {{foo: [cyclic reference], bar: [cyclic reference]}}}

Extend JSON global object

JSON.parse and JSON.stringify is not modified

import { extend } from "json-decycle";

JSON.decycle({}) === "{}";
JSON.retrocycle("{}") === {};