2012-03-14 135 views
5

我想使包含在JSON變量中的數據的路徑。 我的代碼現在看起來像這樣:JSON路徑中的變量

function writeDB(block) 
{ 
    $.getJSON('js/data.js', function(data) { 

    if (block == "path1") { var adr = data.test.path1.db; }; 
    if (block == "path2") { var adr = data.test.path2.db; }; 
    if (block == "path3") { var adr = data.test.path3.db; }; 

    var datastring=""; 
    $.each(adr, function(i, field){ 
     temp = encodeURIComponent($("#writeDB_"+block+" [name="+adr[i].abc+"]").val()); 
     datastring += adr[i].abc+"="+temp+"&"; 
    }); 

    }); 

} 

「如果」部分我想利用可變「塊」直接進入「ADR」路徑,這樣的事情簡化,使其變,

var adr = "data.test."+block+".db"; 

但是一個字符串不起作用,所以它沒用。有人知道我可以解決這個問題嗎?

+0

可能重複[如何使用在像方括號點符號變量(http://stackoverflow.com/questions/7102704/how-使用的變量式雙點符號樣方括號表示)。請同時理解[JSON與JavaScript對象]的區別(http://stackoverflow.com/questions/8294088/javascript-object-vs-json/8294127#8294127) – Matt 2012-03-14 13:41:42

回答

3
if (typeof(data.test[block]) != "undefined") 
    var adr = data.test[block].db; 
....