2012-03-02 68 views
1

我想選擇一個jason對象的一個​​特定屬性。使用JSON獲取值

這是JSON的結構:

{ 
    "resultsPage:" { 
    "results": { "event": [ 
     { 
     "id":11129128, 
     "type":"Concert", 
     "uri":"http://www.songkick.com/concerts/11129128-wild-flag-at-fillmore?utm_source=PARTNER_ID&utm_medium=partner", 
     "displayName":"Wild Flag at The Fillmore (April 18, 2012)", 
     "start":{"time":"20:00:00", 
       "date":"2012-04-18", 
       "datetime":"2012-04-18T20:00:00-0800"}, 
     "performance":[{"artist":{"uri":"http://www.songkick.com/artists/29835-wild-flag?utm_source=PARTNER_ID&utm_medium=partner", 
            "displayName":"Wild Flag","id":29835,"identifier":[]}, 
         "displayName":"Wild Flag", 
         "billingIndex":1, 
         "id":21579303, 
         "billing":"headline"}], 
     "location":{"city":"San Francisco, CA, US","lng":-122.4332937,"lat":37.7842398}, 
     "venue":{"id":6239, 
       "displayName":"The Fillmore", 
       "uri":"http://www.songkick.com/venues/6239-fillmore?utm_source=PARTNER_ID&utm_medium=partner", 
       "lng":-122.4332937, "lat":37.7842398, 
       "metroArea":{"uri":"http://www.songkick.com/metro_areas/26330-us-sf-bay-area?utm_source=PARTNER_ID&utm_medium=partner", 
           "displayName":"SF Bay Area","country":{"displayName":"US"},"id":26330,"state":{"displayName":"CA"}}}, 
     "status":"ok", 
     "popularity":0.012763 
     }, .... 
    ]}, 
    "totalEntries":24, 
    "perPage":50, 
    "page":1, 
    "status":"ok" 
    } 
} 

這是我在做什麼,以獲得JSON:

url: "http://api.songkick.com/api/3.0/artists/480448/calendar.json?apikey=APIKEY&jsoncallback=?", 
      dataType: "jsonp", // <== JSON-P request 
      success: function (data) { 
       $.each(data["resultsPage"]["results"]["event"], function (i, entry) { 
        $("#events").append('<li><a href="' + entry.uri + '">' + entry.displayName + '</a></li>'); 
       }); 

我是新使用JSON所以我的問題是:如何通過在此JSON對象中輸入藝術家名稱來獲取位置的經度和緯度?任何想法?

+2

您顯然已經知道如何獲取屬性。 'entry.uri','entry.displayName'。現在將相同的邏輯應用於_this_問題。 – 2012-03-02 19:37:09

回答

1

您可以在$.each()函數中使用entry.location.lngentry.location.lat

每個屬性(如果不是數組的話)都可以用點符號來訪問,大多數人可以更容易閱讀和理解。含義,你$.each()也可以這樣定義:

$.each(data.resultsPage.results.event, function (i, entry) {

希望幫助...

0

如果有匹配給定的屬性值,那麼你將不得不爬行,檢查它。

for (loop events) 
    if (select Name = thing you want) 
     do my stuff