为什么这个简单的JSON对象会在JSON.parse中抛出错误?

时间:2013-07-08 21:57:34

标签: javascript json

任何人都可以解决这个问题。为什么以下JSON对象会导致JSON.parse错误?它似乎是一个有效的JSON对象。我确信在这个漫长的工作日的第14个小时里,我正在做一些完全愚蠢的事情。

var t = {
    "message": "ok, Heru we go!"
};

JSON.parse(t);

--> syntaxError: Unexpected token o

非常感谢你!

更新

当你有2只新的小狗并试图在3小时的睡眠时编码时,你会问这个问题。请让这个警告那些来到这里寻找相同答案的人 - 去睡觉。放弃。你今天没用。明天再试一次。

4 个答案:

答案 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!" }');