0

Possible Duplicate:
How to access this JSON value?

i have the following json string generated from my Spring mvc controller of a list. How can acces the holidayName property in jquery.

[{"holidayId":1,"holidayName":"Raksha Bandhan",
  "holidayStartDate":"Aug 2, 2012 12:00:00 AM",
  "holidayEndDate":"Aug 2, 2012 12:00:00 AM"},
 {"holidayId":2,"holidayName":"Independence day",
  "holidayStartDate":"Aug 15, 2012 12:00:00 AM",
  "holidayEndDate":"Aug 15, 2012 12:00:00 AM"}]
Community
  • 1
  • 1
Sanjay Verma
  • 331
  • 1
  • 3
  • 15

2 Answers2

1
 var data=[
           {"holidayId":1,"holidayName":"Raksha Bandhan","holidayStartDate":"Aug 2, 2012 12:00:00 AM","holidayEndDate":"Aug 2, 2012 12:00:00 AM"},
           {"holidayId":2,"holidayName":"Independence day","holidayStartDate":"Aug 15, 2012 12:00:00 AM","holidayEndDate":"Aug 15, 2012 12:00:00 AM"}
         ]

   $.each(data,function(index,item){       
        alert(item.holidayName)      
   });

Working Sample : http://jsfiddle.net/5egk2/1/

Shyju
  • 214,206
  • 104
  • 411
  • 497
0

I'm not familiar with Spring MVC, but you should be careful in observing whether the starting "json string" that you're working with is a string or an object.

If it's a string, you'll need to use $.parseJSON first as @Felix mentioned.

If it's already an object, then you can access it as directly as @Shyju has done, or like so without the each loop:

var input = 
    [
        {
            "holidayId": 1,
            "holidayName": "Raksha Bandhan",
            "holidayStartDate": "Aug 2, 2012 12:00:00 AM",
            "holidayEndDate": "Aug 2, 2012 12:00:00 AM"
        },
        {
            "holidayId": 2,
            "holidayName": "Independence day",
            "holidayStartDate": "Aug 15, 2012 12:00:00 AM",
            "holidayEndDate": "Aug 15, 2012 12:00:00 AM"
        }
    ];

console.log(input[0]['holidayName']); //'Raksha Bandhan'
console.log(input[1]['holidayName']); //'Independence Day'

​http://jsfiddle.net/zTeX2/

fortuneRice
  • 4,214
  • 11
  • 43
  • 58