JSON.parse:意外字符 - 语法正确,数据类型为字符串

时间:2017-01-07 10:48:37

标签: javascript json

我完全不知所措。尝试JSON.parse()以下字符串时出现异常:

{"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"}

异常报告的确切错误是:

  

JSON.parse:JSON数据第1行第1列的意外字符

根据JSONLint,字符串语法是正确的。我还确认数据类型是字符串。

可能导致异常的原因是什么?

2 个答案:

答案 0 :(得分:0)

也许你忘了引用字符串?



console.log(JSON.parse('{"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"}'))




省略引号会产生一个对象文字:



console.log({"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"})




答案 1 :(得分:0)

你可能从字面上分配了这个值,这个对象不是字符串,所以:

var invalidJSON = {"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"};

var validJSON = '{"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"}';