2012-05-25 39 views
0

所以我在一個變量中存儲了一個JSON,但是如何搜索它,basiclly當用戶單擊我想要加載的業務名稱並向他們顯示商店地址,電話號碼和其他詳細信息時。在var jQuery中搜索JSON

這裏是VAR

var myMarkers = { 
    "markers": [ 
    { 
     "id": 1, 
     "name": "Belconnen", 
     "url_name": "belconnen", 
     "address": "Shop 176, 3rd Floor, Westfield Shopping Centre, Benjamin Way", 
     "suburb": "Belconnen", 
     "state": "act", 
     "postcode": 2618, 
     "country": "Australia", 
     "phone": "(02) 6251 1838", 
     "fax": "", 
     "photo": "dcddfcb5c806b2255c611bd2d108cead.JPG", 
     "text": "", 
     "display": 1, 
     "lat": -35.238428606, 
     "lng": 149.065917134, 
     "email": "[email protected]", 
     "dealer_code": 63014, 
     "region_id": 3, 
     "type": 4 
    } 
] 

我已刪除大部分的JS,方便。

這是我第一次嘗試搜索和存儲JS,通常我會讓PHP來完成它,但認爲獲得JS更容易和更快。

+0

您能修改JSON?你是自己生成還是從第三方獲取?如果這是你的JSON,請考慮自動完成:http://jqueryui.com/demos/autocomplete/ – jmort253

回答

0

搜索任何特定的條目,你可以做這樣的事情:

var target = 'Belconnen'; // value of target will change depending on click 

$.each(myMarkers.markers, function() { 
    if(this.name.toLowerCase() == target.toLowerCase()) { 
    console.log(this.address); 
    console.log(this.state); // and more 
    } 
}); 
1

您可以使用object.propertyobject['property']語法(兩者同義,第二個可以使用表達式)訪問對象的屬性。

所以你的情況,你會得到這樣的地址:

var address = myMarkers.markers[0].address; 

使用類似的代碼來獲得你想要的其他信息。

+0

我明白這一點,但我該如何做myMarkers.markers搜索說我想搜索Belconnen並只顯示他們的信息 – RussellHarrower

+0

@RussellHarrower - 您只需要使用循環構造來遍歷JSON並使用if語句來查找您要查找的屬性。這是最簡單的路線。 – jmort253

+1

您可以循環使用標記 - 'var l = myMarkers.markers.length; for(var i = 0; i