【发布时间】:2019-11-10 18:39:33
【问题描述】:
我在 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
optgroup 名称中的标识符,即 "CIDR" , "NIC" 每次调用 ajax url 时都会发生变化,但 ".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, function(index,val){
$("optgroup").eq(1).append("<option value='"+val+"'>"+val+"</option>");
});
【问题讨论】:
-
你能再清楚一点吗?
CIDR.DOMAIN.NAME是选择选项之一吗?只是选择上方的标签? -
CIDR.DOMAIN.NAME 是选择选项上方的标签,同样是 NIC.DOMAIN.NAME 或许多如果我进入我的 JSON
-
您的问题并不清楚。如果您确实输入了您期望的文字 html 输出,那就很清楚了。
标签: javascript ajax