2013-08-05 57 views
0

獲得從外部對象鍵值隨着本地陣列我可以匹配一鍵這樣的提交值:如何通過的getJSON

var myArray = { 
     "orange": "black", 
     "red": "brown" 
    }; 

var myKey = $("input").val(); 
var myValue = myArray[myKey]; 
alert(myKey + " is the new " + myValue); // outputs "orange is the new black" 

我怎樣才能做到這一點在同一個陣列存儲在外部是什麼時候?沒有:

var myArray = $.getJSON('/files/colors.json'); 

$.getJSON('/files/colors.json', function(data){ 
    var myValue = data[myKey]; 
    ... 
} 

我必須$.parseJSON即使我的外部陣列是正確的格式?

+0

'$ .getJSON' does * not * return you the object/array。它返回一個承諾對象,所以你可以添加回調。您需要使用回調來訪問JSON數據。 'var myValue = data [myKey];'(從你的第二個例子)不起作用?這裏有什麼問題?附: '$ .getJSON'會爲你解析JSON。 –

+0

第二個示例 - data [myKey] - 不起作用,除非我有單獨的錯誤。無法爲此做一個jsfiddle,因爲json在我的域中。 – nathanbweb

+0

getArray()怎麼辦? – nathanbweb

回答

1

jQuery 1.4+將在檢索不良JSON數據時失敗,因此請確保您的數據非常緊密。

你的第二個例子應該在技術上有效。作爲一個更好的例子,試試這個:

$.getJSON('/files/colors.json', function(data) { 

    $.each(data, function(key, val) { 

    console.log(key + ' : ' + val); 

    }); 
}); 

你提到Array很多。值得一提的是,你的數據更好地描述爲一個對象?

+0

謝謝。我現在有數據[myKey]工作,在上述評論的幫助下。 – nathanbweb