The Parameters
The value to convert to a JSON string. replacer OptionalA function that alters the behavior of the stringification process, or an array of strings or numbers naming properties of space OptionalA string or number that's used to insert white space (including indentation, line break characters, etc.) into the output JSON string for readability purposes. If this is a number, it indicates the number of space characters to be used as indentation, clamped to 10 (that is, any number greater than If this is a string, the string (or the first 10 characters of the string, if it's longer than that) is inserted before every nested object or array. If Return valueA JSON string representing the given value, or undefined. Exceptions
Thrown if one of the following is true:
Description
The replacer parameterThe As an array, its elements indicate the names of the properties in the object that should be included in the resulting JSON string. Only string and number values are taken into account; symbol keys are ignored. As a function, it takes two parameters: the The
Note: When parsing JSON generated with Typically, array elements' index would never shift (even when the element is an invalid value
like a function, it will become The space parameterThe
Each level of indentation will never be longer than 10. Number values of ExamplesUsing JSON.stringify
Using a function as replacer
If you wish the
Using an array as replacer
Using the space parameterIndent the output with one space:
Using a tab character mimics standard pretty-print appearance:
toJSON() behaviorDefining
Issue with serializing circular referencesSince the JSON format doesn't support object references (although an
IETF draft exists), a
To serialize circular references, you can use a library that supports them (e.g. cycle.js by Douglas Crockford) or implement a solution yourself, which will require finding and replacing (or removing) the cyclic references by serializable values. If you are using Using JSON.stringify() with localStorageIn a case where you want to store an object created by your user and allow it to be restored even after the browser has been closed, the following example is a model for the applicability of
Well-formed JSON.stringify()Engines implementing the well-formed JSON.stringify specification will stringify lone surrogates (any code point from U+D800 to U+DFFF) using Unicode escape sequences rather than literally (outputting lone surrogates). Before this change, such strings could not be encoded in valid UTF-8 or UTF-16:
But with this change
This change should be backwards-compatible as long as you
pass the result of Specifications
Browser compatibilityBCD tables only load in the browser See also |