Reputation: 697
Dot notation allows for accessing objects with a '.' Cannot figure out why this is happening. I have the following success function, as part of a jQuery $.ajax function.
success: function(data){
console.log('data = ' + data);
console.log('data.president = ' + data.president);
console.log('data.adviser = ' + data.adviser);
}
This, oddly, results in the following browser log:
data = {"president":1,"adviser":1}
data.president = undefined
data.adviser = undefined
I must be missing something painfully obvious. Can somebody enlighten me?
Upvotes: 4
Views: 3703
Reputation: 1975
The data would have to be an Object to be accessed by a dot .
.
It's a string now.
You need to parse it using for example:
data = JSON.parse(data);
Upvotes: 8
Reputation: 62
You define the data elements has strings, attributes of an object need to be declared without quotes, like this:
data = {president:1,adviser:1}
in that case you got the expected result
data.president = 1
data.adviser = 1
Upvotes: 0
Reputation: 74420
Set dataType: "json"
as ajax option so jQuery would parse your string data
to javascript object
Upvotes: 4