jQuery访问JSON对象?

时间:2011-06-26 18:29:28

标签: javascript jquery json

我从$.ajax({ POST.....

获得以下回复
[{"total_votes":1,"options":[{"id":40,"vote_count":0,"users":[]},{"id":41,"vote_count":1,"users":[{"photo":"xxxxxxxxxxx.png","name":"XXXXX,"id":1}]},{"id":42,"vote_count":0,"users":[]}]}]

因此我尝试使用以下内容获取total_votes:

    success: function(e) {
        console.log(e['total_votes'])       
    }

也试着去

        console.log( e['options'].length() )
        console.log( e['options'][0]['id'] )

关于为什么我一直未定义的建议?还有更好的方法来循环选项吗?

由于

5 个答案:

答案 0 :(得分:8)

您的根对象是一个数组,因此您需要执行e[0]['total_votes']之类的操作。此外,数组的长度不是一个属性,因此您需要执行e[0].options.lengthe[0]['options'].length

答案 1 :(得分:2)

使用$.each()

循环播放它们

答案 2 :(得分:1)

根据您的示例JSON响应(它在数组中),它将是e[0].total_votes

答案 3 :(得分:0)

在解除引用JSON对象之前,您需要调用JSON.parse

答案 4 :(得分:0)

以这种方式格式化你的Json,你可以获得像这样的“total_votes”值

success: function(e) {
    console.log(e[0].total_votes);

}

 [
    {
        "total_votes": 1,
        "options": [
            {
                "id": 40,
                "vote_count": 0,
                "users": []
            },
            {
                "id": 41,
                "vote_count": 1,
                "users": [
                    {
                        "photo": "xxxxxxxxxxx.png",
                        "name": "XXXXX",
                        "id": 1
                    }
                ]
            },
            {
                "id": 42,
                "vote_count": 0,
                "users": [
                    {}
                ]
            }
        ]
    }
]

结帐here