# safe-stringify **Repository Path**: mirrors_sindresorhus/safe-stringify ## Basic Information - **Project Name**: safe-stringify - **Description**: Serialize objects to JSON with handling for circular references - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-03 - **Last Updated**: 2026-05-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # safe-stringify > Serialize objects to JSON with handling for circular references `JSON.stringify()` throws an error if the object contains circular references. This package replaces circular references with `"[Circular]"`. ## Install ```sh npm install safe-stringify ``` ## Usage ```js import safeStringify from 'safe-stringify'; const foo = {a: true}; foo.b = foo; console.log(safeStringify(foo)); //=> '{"a":true,"b":"[Circular]"}' console.log(JSON.stringify(foo)); //=> TypeError: Converting circular structure to JSON ``` ## API ### safeStringify(value, options?) Returns a string. *Note: There is no `replacer` option as I didn't need that, but “pull request welcome” if you need it.* #### value Type: `unknown` The value to convert to a JSON string. #### options Type: `object` ##### indentation Type: `'string' | 'number'` The indentation of the JSON. By default, the JSON is not indented. Set it to `'\t'` for tab indentation or the number of spaces you want. ##### trace Type: `boolean` Include the full object path in circular reference markers, like `[Circular *a.b]`. ```js import safeStringify from 'safe-stringify'; const bar = {a: {b: {}}}; bar.a.b.c = bar.a; console.log(safeStringify(bar, {trace: true})); //=> '{"a":{"b":{"c":"[Circular *a]"}}}' ``` ## FAQ ### Why another safe stringify package? The existing ones either did too much, did it incorrectly, or used inefficient code (not using `WeakSet`). For example, many packages incorrectly replaced all duplicate objects, not just circular references, and did not handle circular arrays. ## Related - [decircular](https://github.com/sindresorhus/decircular) - Remove circular references from objects