JSON.parse没有正确评估JSON字符串

时间:2012-01-24 22:47:55

标签: javascript json cappuccino

我正在使用JSON.parse来解析此JSON字符串

[{"created_at":"2012-01-24T22:36:21Z","name":"joe","age":42,"updated_at":"2012-01-24T22:36:21Z"}]

但是我只是将这个结果作为输出:

[object Object]

不应该是结果。我在Cappuccino框架内使用它。有谁知道我在这里做错了什么?

2 个答案:

答案 0 :(得分:1)

[object Object]是您在其上调用toString时显示的对象。您似乎正在接受结果并尝试拨打obj.toString()

此外,您的JSON是一个包含一个元素的数组,因此要验证结果是否正确,您可以访问[0]索引上的name属性:

obj[0].name // should be "joe".

var text = '[{"created_at":"2012-01-24T22:36:21Z","name":"joe","age":42,"updated_at":"2012-01-24T22:36:21Z"}]';

var obj = JSON.parse(text);

alert(obj[0].name); //alerts joe

DEMO


或者摆脱阵列,因为它并没有真正做多少

var text = '{"created_at":"2012-01-24T22:36:21Z","name":"joe","age":42,"updated_at":"2012-01-24T22:36:21Z"}';

var obj = JSON.parse(text);

alert(obj.name); //still joe

DEMO

答案 1 :(得分:0)

这是一个数组,因为它在方括号中 - [] - 删除这些,它应该工作... 即使这在语法上是正确的,解析器也会将其视为一个数组(这是一种对象),但不会按照您期望的方式对其进行处理。

也供将来参考: 尝试lint它,看看你的语法是否搞砸了:http://jsonlint.com/