Parse a string as JSON.
Usage
var parseJSON = require( '@stdlib/utils/parse-json' );
parseJSON( str[, reviver] )
Parses a string as JSON.
var out = parseJSON( '{"beep":"boop"}' ); // returns {'beep':'boop'}
If unable to parse a string as JSON, the function returns an error.
var out = parseJSON( 'beep' ); // returns <SyntaxError>
To transform the string being parsed, provide a reviver.
function reviver( key, value ) { if ( key === '' ) { return value; } if ( key === 'beep' ) { return value; } } var str = '{"beep":"boop","a":"b"}'; var out = parseJSON( str, reviver ); // returns {'beep':'boop'}
Notes
-
In contrast to the native
JSON.parse(), this implementation throws aTypeErrorif provided any value which is not astring.var out = JSON.parse( null ); // returns null out = parseJSON( null ); // throws <TypeError>
-
In contrast to the native
JSON.parse(), this implementation does not throw aSyntaxErrorif unable to parse astringas JSON.var out = parseJSON( '{"beep":"boop}' ); // returns <SyntaxError> out = JSON.parse( '{"beep":"boop}' ); // throws <SyntaxError>
-
In contrast to the native
JSON.parse(), this implementation throws aTypeErrorif provided areviverargument which is not afunction.var out = JSON.parse( '{"a":"b"}', [] ); // returns {'a':'b'} out = parseJSON( '{"a":"b"}', [] ); // throws <TypeError>
Examples
var parseJSON = require( '@stdlib/utils/parse-json' ); var out; out = parseJSON( '{"beep":"boop"}' ); // returns {'beep':'boop'} out = parseJSON( '3.14' ); // returns 3.14 out = parseJSON( 'true' ); // returns true out = parseJSON( 'null' ); // returns null out = parseJSON( '{"beep":"boop}' ); // returns <SyntaxError>