2014-02-24 28 views
0

就在我認爲我已經知道在對象中標識元素時,我遇到了一個我似乎無法獲得所需值的場景。從JSONP格式化的數據對象中檢索值

這部分作品和返回的數據是正確的:我有地圖,當我試圖找出地圖上的建築物,我收到以下JSON對象(這已經縮短了可讀性,但在現實生活中,其格式正確):MapClick(queryResults)函數在單擊地圖時被調用。

dojo.io.script.jsonp_dojoIoScript19._jsonpCallback({ 
"results": [ 
    { 
     "layerId": 5, 
     "layerName": "Building", 
     "value": "Name of item clicked", 
     "displayFieldName": "name", 
     "attributes": { 
      "ID": "123", 
      "name": "Name of item clicked", 
      "Variable1": "Some bit of information", 
      "Variable2": "Some other bit of information", 
      ... 
      ... 

所有我想要做的就是回到要麼在這個例子應該帶回results[0].value OR results[0].attributes.name「項目名稱點擊」。 layerId,layerName,value和displayFieldName是「通用訪問最多的數據」,因此它們會返回,但在屬性中也會找到相同的信息。

我試過console.log(results[1].attributes.name);console.log(results)沒有成功。

+1

您可能需要'results.results [0] .value'。頂級對象具有屬性'results'。 –

+0

[Access/process(nested)對象,數組或JSON](http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json) –

+0

你是說頂級將永遠是'結果'只是在返回的這個json對象中發生了這種情況,'results'也被使用,這就是你所說的'results.results [0] .value'可能工作嗎?換句話說,如果上面提供的示例是響應,那麼答案可能是'results.response [0] .value'? – HPWD

回答

0

原來的功能處理的MapClicked的名稱需要queryResults所以正確答案是:queryResults[0].value,當你看開括號[,你可以肯定,你將需要[一些數](如queryResults[0].valuequeryResults[99].someothervariable。或者至少我認爲這是一個正確的說法