Test if a value is a parseable JSON string.


var isJSON = require( '@stdlib/assert/is-json' );

isJSON( value )

Tests if a value is a parseable JSON string.

var value = '{"a":5}';

var bool = isJSON( value );
// returns true


  • The implementation validates that the input value is a string literal. For all other inputs, the method returns false.

  • The implementation validates that a string begins with either [ or { and ends with a corresponding ] or }, respectively. Hence, the method will return false for the following strings, despite JSON.parse accepting their input:

    • '<number>' (e.g., '5')
    • '<boolean>' (e.g., 'true')
    • 'null'
  • The implementation wraps JSON.parse inside a try/catch. Hence, this function cannot be optimized by the compiler during runtime. Nevertheless, using this function is better than embedding a try/catch within a larger function which could be optimized in the absence of a try/catch.


var isJSON = require( '@stdlib/assert/is-json' );

var bool = isJSON( '{"a":5}' );
// returns true

bool = isJSON( '{a":5}' );
// returns false
Did you find this page helpful?