JSON路径中的变量

问题描述:

我想使包含在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://*.com/questions/7102704/how-使用的变量式双点符号样方括号表示)。请同时理解[JSON与JavaScript对象]的区别(http://*.com/questions/8294088/javascript-object-vs-json/8294127#8294127) – Matt 2012-03-14 13:41:42

你想用square bracket notation

var adr = data.test[block].db; 

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