0

任何人都可能会弄清楚这一点。为什么以下 JSON 对象会导致 JSON.parse 错误?它似乎是一个有效的 JSON 对象。我敢肯定,在这个漫长工作日的第 14 个小时里,我正在做一些完全愚蠢的事情。

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

JSON.parse(t);

--> syntaxError: Unexpected token o

非常感谢!

更新

当您有 2 只新幼犬并尝试在 3 小时的睡眠中编写代码时,您会问这种问题。请让这对那些来到这里寻找相同答案的人发出警告——去睡觉吧。放弃。你今天一文不值。明天再试。

4

4 回答 4

8

JSON.parse需要一个字符串。的值t是一个javascript对象,所以不需要解析。

如果你有:

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

那么JSON.parse这就是你所追求的。

于 2013-07-08T22:00:17.467 回答
4

你不想JSON.stringify(t);吗?

JSON.parse(s);用于从字符串中获取对象。

JSON.stringify(t);用于将您的 JSON 对象转换为其等效的字符串。

于 2013-07-08T22:01:02.733 回答
2

t已经是一个 JavaScript 对象。 JSON.parse仅适用于字符串。你可以这样做JSON.parse(JSON.stringify(t)),但那将毫无意义。

于 2013-07-08T22:00:53.757 回答
0

这里的 JSON 应该是一个字符串。您正在传递一个对象作为参数。尝试这个

JSON.parse('{ "message": "ok, Heru we go!" }');
于 2013-07-08T22:01:33.947 回答