我在处理JSON对象/数组的结构时遇到困难,需要将其显示在页面的选择列表中。
{
"DOMAINORIGIN": {
"CIDR.DOMAIN.NAME": [
"10.255.255.255","172.31.255.255"
],"NIC.DOMAIN.NAME": [
"192.168.255.255","192.168.255.255","255.255.255.128"
]
}
}
$.ajax({
type: 'GET',url: "/smisc/api/DOMAINORIGIN.log",dataType: "json",async: true
}).done(function(data) {
var json = JSON.stringify(data.DOMAINORIGIN);
alert(json);
});
我需要从上面的json对象解析数据。并在我的选择列表中将数据显示为
<select name="iplist" id="iplist">
CIDR.DOMAIN.NAME //optgroup
10.255.255.255
172.31.255.255
NIC.DOMAIN.NAME // optgroup
192.168.255.255
192.168.255.255
255.255.255.128
每次调用ajax url时,optgroup名称中的标识符(即“ CIDR”,“ NIC”)都会变化,但“ .DOMAIN.NAME”保持不变。 不知道如何将JSON数据放入选择框。请指导该怎么做?
更新:(感谢Rk003)
var listArray = Object.keys(data["DOMAINORIGIN"]);
//alert(listArray);
var cidr_array = data.DOMAINORIGIN[listArray[0]];
var nic_array = data.DOMAINORIGIN[listArray[1]];
$("body").append('<select name="iplist" id="iplist"></select>');
$.each(data.DOMAINORIGIN,function (key,val){
$("#iplist").append("<optgroup label='"+key+"'></optgroup>");
});
$.each(cidr_array,function(index,val){
$("optgroup").eq(0).append("<option value='"+val+"'>"+val+"</option>");
});
$.each(nic_array,val){
$("optgroup").eq(1).append("<option value='"+val+"'>"+val+"</option>");
});