Javascript 如何从SNMP设备迭代对象并使用预定义规则创建可读输出
我从SNMP设备中获得了以下JSON:Javascript 如何从SNMP设备迭代对象并使用预定义规则创建可读输出,javascript,node.js,snmp,mib,Javascript,Node.js,Snmp,Mib,我从SNMP设备中获得了以下JSON: mib = [ "1.3.6.1.2.1.43.11.1": { "1.1": { "3": "1", "5": "3", "6": "Cyan Toner Cartridge, WorkCentre 6505N", "8": "2000", "9": "800" }, "1.2":
mib = [
"1.3.6.1.2.1.43.11.1": {
"1.1": {
"3": "1",
"5": "3",
"6": "Cyan Toner Cartridge, WorkCentre 6505N",
"8": "2000",
"9": "800"
},
"1.2": {
"3": "2",
"5": "3",
"6": "Magenta Toner Cartridge, WorkCentre 6505N",
"8": "1000",
"9": "400"
},
"1.5": {
"3": "0",
"5": "9",
"6": "Imaging Unit, WorkCentre 6505N",
"8": "24000",
"9": "24000"
}
},
"1.3.6.1.2.1.43.12.1": {
"1.1": {
"4": "cyan"
},
"1.2": {
"4": "magenta"
}
}
]
我想要的结果是:
device["markerSupplies"]: [
0: {
color: "cyan",
type: "toner",
description: "Cyan Toner Cartridge, WorkCentre 6505N",
capacity: "2000",
value: "800"
},
1: {
color: "magenta",
type: "toner",
description: "Magenta Toner Cartridge, WorkCentre 6505N",
capacity: "1000",
value: "400"
},
2: {
color: "",
type: "opc",
description: "Imaging Unit, WorkCentre 6505N",
capacity: "24000",
value: "24000"
},
]
“1.1”、“1.2”。。。只是索引,我有关于它们内部的信息。
其中的每个属性都称为列,并与其索引相对应
我对每个表的列了解如下:
1.3.6.1.2.1.43.11.1
3 the color index inside 1.3.6.1.2.1.43.12.1
5
3 "toner"
9 "opc"
6 description
8 capacity
9 level
1.3.6.1.2.1.43.12.1
4 color name
如何创建一个JSON信息对象,使用javascript代码可以从设备上迭代JSON
创建我上面显示的输出结果?您可以使用一些颜色和类型的辅助变量,并迭代键来构建新数组
var-mib={“1.3.6.1.2.1.43.11.1”:{“1.1”:{3:“1”,5:“3”,6:“青色碳粉盒,工作中心6505N”,8:“2000”,9:“800”},“1.2:{3:“2”,5:“3”,6:“洋红碳粉盒,工作中心6505N”,8:“1000”,9:“400”},“1.5:{3:“0”,5:“5:“成像单元,工作中心6505N”,8:“24000”,9:“0”},“1.12.1:{“1.1:{4:“青色”},“1.2:{4:“洋红”}},
cols={3:'颜色',5:'类型',6:'描述',8:'容量',9:'级别'},
类型={3:'碳粉',9:'opc'},
markerSupplies=mib['1.3.6.1.2.1.43.11.1'],
颜色=mib['1.3.6.1.2.1.43.12.1'],
结果=Object.keys(markerSupplies).map(函数(k){
var o={};
Object.keys(cols).forEach(函数(c){
如果(c=='3'){
o[cols[c]=(颜色[k]||{})[4']| |'';
返回;
}
如果(c=='5'){
o[cols[c]]=types[markerSupplies[k][c]]||‘;
返回;
}
o[cols[c]]=markerSupplies[k][c]|;
});
返回o;
});
console.log(result);
这些键有多可靠,比如1.3.6.1.2.1.43.11.1
?使用打印机mib,我知道1.3.6.1.2.1.43.11.1是prtMarkerSuppliesTableHi Nina!我对这个答案了解得很透彻,现在我有一个类似的问题需要以稍微不同的方式解决,希望你能帮助。