JSON.parse 意外字符错误

2022-08-30 05:19:43

我收到此错误:

JSON.parse:意外字符

当我在 firebug 中运行此语句时:

JSON.parse({"balance":0,"count":0,"time":1323973673061,"firstname":"howard","userId":5383,"localid":1,"freeExpiration":0,"status":false});

为什么会这样?JSON字符串对我来说似乎是正确的,我也使用JSHint对其进行了测试。在上述情况下,传递的对象是内容类型设置为application/json


答案 1

你不是在解析字符串,而是在分析一个已经解析过的对象:)

var obj1 = JSON.parse('{"creditBalance":0,...,"starStatus":false}');
//                    ^                                          ^
//                    if you want to parse, the input should be a string 

var obj2 = {"creditBalance":0,...,"starStatus":false};
// or just use it directly.

答案 2

在将有问题的对象传递给解析函数之前,只需使用 ,即可确保该对象已字符串化。JSON.stringify()

更新了下面的行,

JSON.parse(JSON.stringify({"balance":0,"count":0,"time":1323973673061,"firstname":"howard","userId":5383,"localid":1,"freeExpiration":0,"status":false}));

或者,如果您将JSON存储在某个变量中:

JSON.parse(JSON.stringify(yourJSONobject));