2014-02-18 96 views
0

使用jquery我試圖讀取json文件中的值並填充到下拉列表中。使用jquery從json文件讀取值

爲此我正在做以下 但undefined值正在下拉。 我的代碼有什麼問題? JSON文件

{ 
     "VMs":[ 
     { 
      "ID":"VM-WIN7-64", 
      "OS":"Windows 7", 
      "FLAVOUR":"VM-IE8-001-preq", 
      "ADAPTER":"Win 9" 
     } 
     ], 
     "Paths":{ 
     "VM-WIN7-64":"C:\\VirtualMachines\\Win7_X64_VM-001\\Win7_X64_VM-001.vmx" 
     } 
    } 

代碼

function getOsNames() { 
$.getJSON('/json/data.json', function(data) 
    { 
var html = ''; 
     $.each(data,function(val,i) 
     { 
alert(val); 
html += '<option value="' + val.OS + '">' + val.OS + '</option>'; 
     }); 
    $('#op').html(html);  

    }); 

} 

回答

2

您可以通過data.VMs必須循環,因爲它是有操作系統性質

function getOsNames() { 
    $.getJSON('/json/data.json', function (data) { 
     var html = ''; 
     $.each(data.VMs, function (i, val) { 
      html += '<option value="' + val.OS + '">' + val.OS + '</option>'; 
     }); 
     $('#op').html(html); 
    }); 
} 

演示:Fiddle

+0

到位操作系統越來越不確定的數據 – Sush

+0

@Sush每個回調參數順序調換 –

+0

看到http://jsfiddle.net/arunpjohny/PK9s6/1/ –

0

您可以使用循環:

for(var i=0;i<data.VMs.length;i++) 
{ 
    html += '<option value="' + data.VMs[i].OS + '">' + data[i].VMs[i].OS + '</option>'; 
} 
$('#op').html(html); 

這將解決你的問題

+0

沒有得到你的解決方案 – Sush