JQuery доступ JSON Object - PullRequest
       12

JQuery доступ JSON Object

9 голосов
/ 25 октября 2009

Как получить доступ к имени элемента в Object Literal с помощью jQuery?

Например, как бы я прочитал "title", "link", "media", ect ... в этом

{
    "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": "nobody@flickr.com (Darlene, TN Persians (www.tnpurrs.com))",
    "author_id": "66405213@N00",
    "tags": "cat persian tnpurrs"
},

Ответы [ 5 ]

21 голосов
/ 25 октября 2009

Вы также можете использовать функцию $. Each :

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

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

Если вы выберете способ выражения for...in, я бы порекомендовал вам проверить, находится ли свойство непосредственно на итерируемом объекте, потому что вы можете иметь some выдает , если расширен Object.prototype:

for(var key in obj) {
  if (obj.hasOwnProperty(key)){
    // value = obj[key];
  }
}
9 голосов
/ 25 октября 2009
for (var key in json) {
  // ...
}

(это стандартный javascript, а не jQuery-специфичный)

2 голосов
/ 25 октября 2009

В вашем случае это вообще не массив! Вы хотите просмотреть свойства объекта.

JavaScript также не поддерживает ассоциативные массивы ... см. http://www.hunlock.com/blogs/Mastering_Javascript_Arrays

Зед ответ идеально, я бы добавил

alert(json[key]);

внутри for, если вам интересно, как получить значение свойства

Спасибо

0 голосов
/ 03 декабря 2014

Вы можете получить доступ без каждого цикла, если хотите.

var obj = JSON.parse(data);
var title  = obj[0].title;
0 голосов
/ 13 января 2014
var testObject = {
    "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": "nobody@flickr.com (Darlene, TN Persians (www.tnpurrs.com))",
    "author_id": "66405213@N00",
    "tags": "cat persian tnpurrs"
};

если это один объект, вы можете получить к нему доступ testObject.tags или testObject.title ... как это

или вы можете выполнить итерацию по

$.each(obj,function(key,value){
///
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...