任何人都可以解决这个问题。为什么以下JSON对象会导致JSON.parse错误?它似乎是一个有效的JSON对象。我确信在这个漫长的工作日的第14个小时里,我正在做一些完全愚蠢的事情。
var t = {
"message": "ok, Heru we go!"
};
JSON.parse(t);
--> syntaxError: Unexpected token o
非常感谢你!
更新
当你有2只新的小狗并试图在3小时的睡眠时编码时,你会问这个问题。请让这个警告那些来到这里寻找相同答案的人 - 去睡觉。放弃。你今天没用。明天再试一次。
答案 0 :(得分:8)
JSON.parse
需要一个字符串。 t
的值是一个javascript对象,因此不需要对其进行解析。
如果你有:
var t = "{\"message\":\"ok, Heru we go!\"}";
然后JSON.parse
就是你所追求的。
答案 1 :(得分:4)
你不想要JSON.stringify(t);
吗?
JSON.parse(s);
用于从字符串中获取对象。
JSON.stringify(t);
用于将您的JSON对象转换为其等效的字符串。
答案 2 :(得分:2)
t
已经是一个JavaScript对象。 JSON.parse
仅适用于字符串。你可以做JSON.parse(JSON.stringify(t))
,但那会毫无意义。
答案 3 :(得分:0)
这里的JSON应该是一个字符串。您正在传递一个对象作为参数。 试试这个
JSON.parse('{ "message": "ok, Heru we go!" }');