JSON.parse未正确计算JSON字符串

t5zmwmid  于 2023-01-06  发布在  其他
关注(0)|答案(3)|浏览(111)

我使用JSON.parse来解析这个JSON字符串

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

然而,我只是得到这个结果作为输出:

[object Object]

这不应该是结果。我在卡布奇诺框架内使用这个。有人知道我在这里做错了什么吗?

zazmityj

zazmityj1#

[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

kninwzqo

kninwzqo2#

这是一个数组,因为它在方括号- [] -删除这些,它应该工作...即使这是'语法'正确的解析器认为这是一个数组(这是一种类型的对象),但不会做的工作,它的方式,你会期望。
另供将来参考:尝试lint它,看看语法是否混乱:http://jsonlint.com/

5lhxktic

5lhxktic3#

这是一个古老的主题,但尽管如此,我还是花了几个小时试图弄清楚到底发生了什么。所以,希望这能在未来帮助到其他人。
我的问题是建立一个简单 AJAX 调用,并对来自所说的ajax调用的结果集做一些事情,然而,无论我做什么,我都无法将json结果集获取到一个对象。
我在调试器窗口中完成了所有的步骤,注意到不再活跃的旧代码出现在侧边栏(dom细节),所以,我的数据已经被缓存了,我清除该高速缓存,砰!一切都正常了。

相关问题