我开始使用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.username
和window.User.default
。但是我期待我也能做alert(window.User.mine[0].id)
这样的事情,但它打印 [(歌曲数组的第一个字符,所以我假设它被解释为一个字符串) 。
我在这里做错了什么?
提前多多感谢。
答案 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后)