JSON路径中的变量

时间:2012-03-14 13:39:08

标签: javascript jquery

我想创建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+"&";
    });

  });

}

“if”部分我希望通过将变量“block”直接用于“adr”路径来简化并使其变量,类似这样的

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

但是一个字符串不起作用,所以它没用。有人知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:9)

您想使用square bracket notation

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

答案 1 :(得分:3)

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