flatted
A super light (0.5K) and fast circular JSON parser, directly from the creator of CircularJSON.
Usable via CDN or as regular module.
import {parse, stringify} from 'flatted/esm';
const {parse, stringify} = require('flatted/cjs');
const a = [{}];
a[0].a = a;
a.push(a);
stringify(a);
New in V1: Exact same JSON API
*Added a reviver parameter to .parse(string, fn)
and revive your own objects.
- Added a replacer and a
space
parameter to .stringify(object, replacer, space)
for feature parity with JSON signature.
Compatibility
All ECMAScript engines compatible with Map
, Set
, Object.keys
, and Array.prototype.reduce
will work, even if polyfilled.
How does it work ?
While stringifying, all Objects, including Arrays, and strings, are flattened out and replaced as unique index. *
Once parsed, all indexes will be replaced through the flattened collection.
*
represented as string to avoid conflicts with numbers
var a = [{one: 1}, {two: '2'}];
a[0].a = a;
Flatted.stringify(a);