gpt4 book ai didi

javascript - 如何从 SNMP 设备迭代对象并使用预定义规则创建可读输出

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:44 24 4
gpt4 key购买 nike

我有来自 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": {
"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: "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" } } },
cols = { 3: 'color', 5: 'type', 6: 'description', 8: 'capacity', 9: 'level' },
types = { 3: 'toner', 9: 'opc' },
markerSupplies = mib['1.3.6.1.2.1.43.11.1'],
colors = mib['1.3.6.1.2.1.43.12.1'],
result = Object.keys(markerSupplies).map(function (k) {
var o = {};
Object.keys(cols).forEach(function (c) {
if (c === '3') {
o[cols[c]] = (colors[k] || {})['4'] || '';
return;
}
if (c === '5') {
o[cols[c]] = types[markerSupplies[k][c]] || '';
return;
}
o[cols[c]] = markerSupplies[k][c] || '';

});
return o;
});

console.log(result);

关于javascript - 如何从 SNMP 设备迭代对象并使用预定义规则创建可读输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38672881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com