2009-10-25 15 views
9

Jak uzyskać dostęp do nazwy przedmiotu w Object Literal za pomocą jQuery?jQuery access JSON Object

Na przykład, jak to czytam "Link" "tytuł",, "media", itd ... w tym

{ 
    "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": "[email protected]", 
    "tags": "cat persian tnpurrs" 
}, 
+5

BTW, nie jest to * asocjacyjna * jest * Obiekt Dosłowne * http://is.gd/4BdvZ – CMS

Odpowiedz

21

można również użyć $.each funkcję:

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

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

Jeśli pójdziesz do stanu for...in ment sposób, polecam Ci sprawdzić, czy nieruchomość znajduje się bezpośrednio na obiekcie jest powtórzyć, bo można mieć someissues, jeśli Object.prototype jest rozszerzony:

for(var key in obj) { 
    if (obj.hasOwnProperty(key)){ 
    // value = obj[key]; 
    } 
} 
9
for (var key in json) { 
    // ... 
} 

(jest to standardowy JavaScript, nie jQuery speficic)

+0

Jest to poprawne, ale tak jak @CMS wymienionych w swojej odpowiedzi, należy sprawdzić, czy klucz jest własnością json, a nie własnością prototypu, w przeciwnym razie możesz napotkać problemy. Po prostu sprawdź 'if (json.hasOwnProperty (key) {// do stuff};'. – baltoro

2

W twoim przypadku, to nie jest tablica w ogóle! Chcesz przechodzić przez właściwości obiektu.

JavaScript nie rzeczywiście wspierać asocjacyjne arays albo ... zobacz http://www.hunlock.com/blogs/Mastering_Javascript_Arrays

odpowiedź Zed jest doskonały, dodałbym

alert(json[key]); 

do wewnątrz, jeśli zastanawiasz się, jak uzyskać wartość Instrumentu propery

Dzięki

0
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": "[email protected] (Darlene, TN Persians (www.tnpurrs.com))", 
    "author_id": "[email protected]", 
    "tags": "cat persian tnpurrs" 
}; 

jeśli to jest pojedynczy obiekt, a następnie można uzyskać dostęp do tego przez testObject.tags lub testObject.title ... jak to

lub można iteracyjne przez

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

można uzyskać dostęp bez każdej pętli, jeśli chciał.

var obj = JSON.parse(data); 
var title = obj[0].title; 
Powiązane problemy