2012-03-14 5 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- [角括弧記法のようなドット表記法で変数を使用する方法] to-not-like-square-bracket-notation)を使用することによって、このような問題を解決することができます。 [JSONとJavaScriptオブジェクトの違い](http://stackoverflow.com/questions/8294088/javascript-object-vs-json/8294127#8294127)の違いもご理解ください。 – Matt

答えて

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