Home >Web Front-end >JS Tutorial >How does javascript determine whether it is in json format?
Judgment method: First use the "JSON.parse(str)" statement to parse the specified data str; then use the "if(typeof obj =='object'&&obj)" statement to determine whether the type of the parsed data is " object" type; if so, the str data is in json format.
The operating environment of this tutorial: windows7 system, javascript version 1.8.5, Dell G3 computer.
js determines whether a string is in JSON format
Cannot be simply used to determine whether a string is in JSON format:
function isJSON(str) { if (typeof str == 'string') { try { JSON.parse(str); return true; } catch(e) { console.log(e); return false; } } console.log('It is not a string!') }
The above try/catch
cannot completely verify that a string is a string in the JSON
format. There are many exceptions:
JSON.parse('123'); // 123 JSON.parse('{}'); // {} JSON.parse('true'); // true JSON.parse('"foo"'); // "foo" JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] JSON.parse('null'); // null
We know that in JS Data types are divided into: string, number, Boolean, array, object, Null, and Undefined.
We can use the following method to judge:
function isJSON(str) { if (typeof str == 'string') { try { var obj=JSON.parse(str); if(typeof obj == 'object' && obj ){ return true; }else{ return false; } } catch(e) { console.log('error:'+str+'!!!'+e); return false; } } console.log('It is not a string!') } console.log('123 is json? ' + isJSON('123')) console.log('{} is json? ' + isJSON('{}')) console.log('true is json? ' + isJSON('true')) console.log('foo is json? ' + isJSON('"foo"')) console.log('[1, 5, "false"] is json? ' + isJSON('[1, 5, "false"]')) console.log('null is json? ' + isJSON('null')) console.log('["1{211323}","2"] is json? ' + isJSON('["1{211323}","2"]')) console.log('[{},"2"] is json? ' + isJSON('[{},"2"]')) console.log('[[{},{"2":"3"}],"2"] is json? ' + isJSON('[[{},{"2":"3"}],"2"]'))
The running result is:
> "123 is json? false" > "{} is json? true" > "true is json? false" > "foo is json? false" > "[1, 5, "false"] is json? true" > "null is json? false" > "["1{211323}","2"] is json? true" > "[{},"2"] is json? true" > "[[{},{"2":"3"}],"2"] is json? true"
So we draw the following conclusion:
JSON.parse() The method is used to parse JSON strings. json.parse() converts the string into a json object
If JSON.parse can be converted successfully; and the converted type is object and not equal to null, then This string is a string in JSON format.
JSON.parse():
JSON is usually used to exchange data with the server.
When receiving server data, it is usually a string.
We can use the JSON.parse() method to convert data into JavaScript objects.
Syntax:
JSON.parse(text[, reviver])
Parameter description:
text: required, a valid JSON string.
reviver: Optional, a function that converts the result. This function will be called for each member of the object.
Before parsing, make sure your data is in standard JSON format, otherwise parsing errors will occur.
For more programming related knowledge, please visit: Programming Video! !
The above is the detailed content of How does javascript determine whether it is in json format?. For more information, please follow other related articles on the PHP Chinese website!