2012-03-14 43 views
5

Tôi muốn tạo đường dẫn đến dữ liệu chứa trong biến JSON. Code tôi có bây giờ trông như thế này:Biến trong đường dẫn 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+"&"; 
    }); 

    }); 

} 

Các "nếu" phần tôi muốn đơn giản hóa và làm cho nó biến, bằng cách sử dụng các biến 'khối' trực tiếp vào "adr" con đường, một cái gì đó như thế này

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

Nhưng một chuỗi sẽ không hoạt động, vì vậy nó vô dụng. Ai đó biết làm thế nào tôi có thể sửa chữa điều đó?

+0

thể trùng lặp của [Làm thế nào để sử dụng các biến trong ký hiệu dấu chấm như ký hiệu khung vuông] (http://stackoverflow.com/questions/7102704/how- sử dụng-biến-trong-dấu chấm-ký hiệu-như-vuông-bracket-ký hiệu). Ngoài ra, hãy hiểu sự khác biệt của [JSON so với đối tượng JavaScript] (http://stackoverflow.com/questions/8294088/javascript-object-vs-json/8294127#8294127) – Matt

Trả lời

3
if (typeof(data.test[block]) != "undefined") 
    var adr = data.test[block].db; 
.... 
Các vấn đề liên quan