Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

jQuery access JSON Object

Tags:

json

jquery

How do I access the name of an item in an Object Literal using jQuery?

For example how would I read "title", "link", "media", ect... in this

{
    "title": "What we do in our free time...",
    "link": "http://www.flickr.com/photos/tnhimmies/4042938515/",
    "media": {"m":"http://farm3.static.flickr.com/2572/4042938515_3a00561320_m.jpg"},
    "date_taken": "2009-10-24T03:48:10-08:00",
    "description": "<p><a href=\"http://www.flickr.com/people/tnhimmies/\">Darlene, TN Persians (www.tnpurrs.com)<\/a> posted a photo:<\/p> <p><a href=\"http://www.flickr.com/photos/tnhimmies/4042938515/\" title=\"What we do in our free time...\"><img src=\"http://farm3.static.flickr.com/2572/4042938515_3a00561320_m.jpg\" width=\"240\" height=\"230\" alt=\"What we do in our free time...\" /><\/a><\/p> <p>Tennessee Persians<br /> <a href=\"http://www.tnpurrs.com\" rel=\"nofollow\">www.tnpurrs.com<\/a><\/p>",
    "published": "2009-10-25T18:28:36Z",
    "author": "[email protected] (Darlene, TN Persians (www.tnpurrs.com))",
    "author_id": "66405213@N00",
    "tags": "cat persian tnpurrs"
},
like image 593
Ben Shelock Avatar asked Oct 25 '09 18:10

Ben Shelock


3 Answers

You can also use the $.each function:

var obj = { one:1, two:2, three:3, four:4, five:5 };

$.each(obj, function(key, value) {
  //..
});

If you go for the for...in statement way, I would recommend you to check if the property resides directly on the object being iterated, because you could have some issues, if the Object.prototype is extended:

for(var key in obj) {
  if (obj.hasOwnProperty(key)){
    // value = obj[key];
  }
}
like image 128
Christian C. Salvadó Avatar answered Oct 19 '22 17:10

Christian C. Salvadó


for (var key in json) {
  // ...
}

(this is standard javascript, not jQuery-speficic)

like image 39
Zed Avatar answered Oct 19 '22 18:10

Zed


In your case, this is not an array at all! You want to loop through properties of an object.

JavaScript does not truly support associative arays either... see http://www.hunlock.com/blogs/Mastering_Javascript_Arrays

Zed's answer is perfect, I would add

alert(json[key]);

inside the for, if you wonder how to get the value of the propery

Thanks

like image 2
Mike Gleason jr Couturier Avatar answered Oct 19 '22 17:10

Mike Gleason jr Couturier