Javascript - 如何访问JSON对象数组

时间:2011-12-13 18:56:59

标签: javascript ajax json

我开始使用Javascript进行JSON / Ajax开发,现在我有一个场景,我从服务器接收JSON字符串,我想在客户端构建一个对象。 我的服务器输出是:

[{"username":"user","mine":"[{"id":"1","artist":"Pearl Jam","name":"Rival"},{"id":"2","artist":"Pearl Jam","name":"Lukin"}]","default":"50"}]

在JS方面,我这样做:

$.getJSON('?action=load',
        function(data)
        {

              window.User = data[0];
        });

我可以打印window.User.usernamewindow.User.default。但是我期待我也能做alert(window.User.mine[0].id)这样的事情,但它打印 [(歌曲数组的第一个字符,所以我假设它被解释为一个字符串) 。 我在这里做错了什么?

提前多多感谢。

3 个答案:

答案 0 :(得分:2)

你的JSON格式错误,所以你得到一个字符串而不是一个数组,这就是原因。

您的JSON应如下所示:

[{"username":"user","mine":[{"id":"1","artist":"Pearl Jam","name":"Rival"},{"id":"2","artist":"Pearl Jam","name":"Lukin"}],"default":"50"}]

然后你会得到预期的结果

答案 1 :(得分:2)

"[{"id":"1","artist":"Pearl Jam","name":"Rival"},{"id":"2","artist":"Pearl Jam","name":"Lukin"}]"

应该是这个

[{"id":"1","artist":"Pearl Jam","name":"Rival"},{"id":"2","artist":"Pearl Jam","name":"Lukin"}]

数组周围的引号使它们成为字符串

答案 2 :(得分:0)

使用:

window.User.mine.[0].id

(根据建议修复你的JSON后)