2012-03-14 15 views
5

Me gustaría hacer la ruta a los datos contenidos en la variable JSON. El código que tengo ahora se ve así:Variable en la ruta 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+"&"; 
    }); 

    }); 

} 

El "si" partes quisiera simplificar y hacer más variables, mediante el uso de la variable 'bloque' directamente en el camino "ADR", algo como esto

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

Pero una cuerda no funcionará, por lo que es inútil. Alguien sabe cómo puedo arreglar eso?

+0

posible duplicado de [Cómo utilizar variables en la notación de punto como notación de corchetes] (http://stackoverflow.com/questions/7102704/how- to-use-variables-in-dot-notación-like-square-bracket-notación). Entienda también las diferencias de [JSON frente a un objeto JavaScript] (http://stackoverflow.com/questions/8294088/javascript-object-vs-json/8294127#8294127) – Matt

Respuesta

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