2012-03-14 10 views
5

Chciałbym utworzyć ścieżkę do danych zawartych w zmiennej JSON. Kod mam teraz wygląda tak:Zmienna w ścieżce 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+"&"; 
    }); 

    }); 

} 

W „czy” części chciałbym uprościć i uczynić to zmienna, przy użyciu zmiennej „zablokuj” bezpośrednio do „ADR” ścieżki, coś takiego

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

Ale ciąg nie działa, więc jest bezużyteczny. Ktoś wie, jak to naprawić?

+0

możliwe duplikat [Jak używać zmiennych w notacji dot jak notacji kwadratowej wspornika] (http://stackoverflow.com/questions/7102704/how- do użycia-zmiennych-w-kropce-notacja-jak-kwadrat-nawias-notacja). Proszę również zrozumieć różnice między [JSON a obiektem JavaScript] (http://stackoverflow.com/questions/8294088/javascript-object-vs-json/8294127#8294127) – Matt

Odpowiedz

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