I get the following back from an $.ajax({ POST.....
[{"total_votes":1,"options":[{"id":40,"vote_count":0,"users":[]},{"id":41,"vote_count":1,"users":[{"photo":"xxxxx开发者_运维知识库xxxxxx.png","name":"XXXXX,"id":1}]},{"id":42,"vote_count":0,"users":[]}]}]
so I try to get total_votes with:
success: function(e) {
console.log(e['total_votes'])
}
also try to get
console.log( e['options'].length() )
console.log( e['options'][0]['id'] )
Suggestions on why I keep getting undefined? Also is there a better way to loop through options?
Thanks
Your root object is an array, so you would need to do something like e[0]['total_votes']
. Also the length of an array is not a function its a property so you would want to do e[0].options.length
or e[0]['options'].length
.
Loop through them with $.each()
It would be e[0].total_votes
according to your example JSON response (it's in an array).
You need to call JSON.parse before dereferencing the JSON object
Formatted ur Json this way, you can get the "total_votes" value like this
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": [
{}
]
}
]
}
]
check out here
精彩评论