3

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":"xxxxxxxxxxx.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

2
  • You excluded some important details from your $.ajax() method. Did you set the dataType: property to 'json'? If not, is it being sent from the server with the proper headers? Commented Jun 26, 2011 at 18:42
  • @AnApprentce, I think ur Json is not correctly formatted. you may need to check the returned type using firbugs in firefox. Commented Jun 26, 2011 at 18:51

5 Answers 5

8

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.

Sign up to request clarification or add additional context in comments.

2 Comments

@AnApprentice: Works if your JSON is parsed: jsfiddle.net/fkling/aJNCm. Parse it or set dataType: 'json'.
Is the data being parsed as json or a string? What happens if you set dataType: "json" in the options section? (See api.jquery.com/jQuery.ajax)
2

Loop through them with $.each()

Comments

1

It would be e[0].total_votes according to your example JSON response (it's in an array).

1 Comment

@AnApprentice: Did you make sure to define the dataType as "json"?
0

You need to call JSON.parse before dereferencing the JSON object

Comments

0

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.