AJAX: Check if a string is JSON?

ajax, javascript, json, validation

Solution

If you include the JSON parser from json.org, you can use its parse() function and just wrap it in a try/catch, like so:

try
{
   var json = JSON.parse(this.responseText);
}
catch(e)
{
   alert('invalid json');
}

Something like that would probably do what you want.

Problem

My JavaScript sometimes crashes on this line: ``` var json = eval('(' + this.responseText + ')'); ``` Crashes are caused when the argument of `eval()` is not JSON. Is there any way to check if the string is JSON before making this call? I don't want to use a framework - is there any way to make this work using just `eval()`? (There's a good reason, I promise.)

Original source

Related problems