JSON.parse Redirect 1

Summary

The JSON.parse() method parses a string as JSON, optionally transforming the value produced by parsing.

Syntax

JSON.parse(text[, reviver])

Parameters

text
The string to parse as JSON. See the JSON object for a description of JSON syntax.
reviver
If a function, prescribes how the value originally produced by parsing is transformed, before being returned.

Returns

Returns the Object corresponding to the given JSON text.

Exceptions

Throws a SyntaxError exception if the string to parse is not valid JSON.

Examples

Example: Using JSON.parse()

try {
  JSON.parse('{}');              // {}
  JSON.parse('true');            // true
  JSON.parse('"foo"');           // "foo"
  JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
  JSON.parse('null');            // null
} catch (e) {
  console.error("Parsing error:", e); 
}

Example: Using the reviver parameter

If a reviver is specified, the value computed by parsing is transformed before being returned. Specifically, the computed value, and all its properties (beginning with the most nested properties and proceeding to the original value itself), are individually run through the reviver, which is called with the object containing the property being processed as this and with the property name as a string and the property value as arguments. If the reviver function returns undefined (or returns no value, e.g. if execution falls off the end of the function), the property is deleted from the object. Otherwise the property is redefined to be the return value.

The reviver is ultimately called with the empty string and the topmost value to permit transformation of the topmost value.  Be certain to handle this case properly, usually by returning the provided value, or JSON.parse will return undefined.

try {
  var transformed = JSON.parse('{"p": 5}',
    function(k, v) { if (k === "") return v; return v * 2; });
  // transformed is { p: 10 }
} catch (e) {
  console.error("Parsing error:", e); 
}

Specifications

Specification Status Comment
ECMAScript Language Specification 5.1th Edition (ECMA-262) Standard Initial definition.
Implemented in JavaScript 1.7.
ECMAScript Language Specification 6th Edition (ECMA-262) Draft  

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) 3.5 (1.9.1) 8.0 10.5 4.0
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) 1.0 (1.0) (Yes) (Yes) (Yes)

Based on Kangax's compat table.

See also

Document Tags and Contributors

 Last updated by: Sheppy,