2012-03-02 50 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