2

If I am given the following data by a web-service:

{
    "d": [
        {
            "col1": "col 1 data 1",
            "col2": "col 2 data 1"
        },
        {
            "col1": "col 1 data 2",
            "col2": "col 1 data 2"
        }
    ]
}

how do I access the second col1?

As the following:

success: function( data ) {
         alert( data.d ) ;
},

gives me:

[object Object],[object Object]
oshirowanen
  • 15,505
  • 80
  • 191
  • 340

4 Answers4

10

Its an array with 2 elements containing col1 and col2, so something like:

alert(data.d[1].col1);

(0 is the first element, and then you choose "col1")

Nanne
  • 63,347
  • 16
  • 116
  • 159
4
success:function(data){
data = JSON.parse(data); // you will have to parse the data first
alert(data.d[0].col1);
Rafay
  • 30,714
  • 5
  • 66
  • 99
3
alert( data.d[1].col1 ) ;

In human:

  1. start at data variable
  2. go to d property.
  3. d is an array, so look up the value at index 1 (second value)
  4. look up the col1 property of that value.

May I suggest console.log? In Chrome and with Firefox/Firebug it will give you a nice log message which tells you more about your data.

cwallenpoole
  • 76,131
  • 26
  • 124
  • 163
2

Try this:

var json = {
    "d": [
        {
            "col1": "col 1 data 1",
            "col2": "col 2 data 1"
        },
        {
            "col1": "col 1 data 2",
            "col2": "col 1 data 2"
        }
    ]
};

alert(json.d[1].col1);

Specify the array index of d (starts with 0, so this would be 1) and then you can access child items. Here's a working example on jsFiddle.

Ben Everard
  • 13,556
  • 12
  • 65
  • 96