cdwyer
cdwyer

Reputation: 697

Javascript Dot Notation = Undefined

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

Answers (3)

jdabrowski
jdabrowski

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

cromerou
cromerou

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

A. Wolff
A. Wolff

Reputation: 74420

Set dataType: "json" as ajax option so jQuery would parse your string data to javascript object

Upvotes: 4

Related Questions