我有一个数据集,其中包含许多具有相似属性(输出)的设备。 (例如下面给出的2)。我不了解的是如何使用新名称取每个设备并将其分配给新的div。数据集中可以有许多设备。我如何告诉我的代码何时有新设备取出bytes_read和bytes_write并将它们分配给新的div,例如assign
"bdev0": {"Bytes_Read": 0, "Bytes_Written": 0} to div_one
"bdev1": {"Bytes_Read": 10, "Bytes_Written": 20 } to div_two
请注意,我无法使用诸如data.devices [0]之类的东西,因为有许多设备,它们的名称不断变化,例如bdev0,bdev1,bdev2,bde3。
这是给定的数据集示例:
var data = {
"devices": [
{
"Name": "bdev0",
"output": {
"IO_Operations": 0,
"Bytes_Read": 0,
"Bytes_Written": 0
}
},
{
"Name": "bdev1",
"output": {
"IO_Operations": 10,
"Bytes_Read": 20,
"Bytes_Written": 30
}
}
]
}
这是我可以走多远的地方,但它会创建两个不同的字符串,但是如何将它们分别分配给两个不同的项目。这听起来确实很愚蠢,但是如果例如我想将这些字符串分配给var a和var b,我真的会被困在这里,我该怎么办呢?
function myData() {
for (var i in data.devices){
var obj = new Object();
obj.Bytes_read = data.devices[i].output.Bytes_Read;
obj.Bytes_written = data.devices[i].output.Bytes_Written;
var jsonString= JSON.stringify(obj);
console.log(jsonString)
}
}
myData(data)
结果
{"Bytes_read":0,"Bytes_written":0}
{"Bytes_read":20,"Bytes_written":30}
它提供了我想要的数据,但是我无法弄清楚将这些集合分配给var a和var b。
最佳答案
如果您拥有设备的名称,则可以将其用作访问数据的密钥。
var data = {
"devices": [{
"Name": "bdev0",
"output": {
"IO_Operations": 0,
"Bytes_Read": 0,
"Bytes_Written": 0
}
}, {
"Name": "bdev1",
"output": {
"IO_Operations": 10,
"Bytes_Read": 20,
"Bytes_Written": 30
}
}]
},
selectedData = {};
data.devices.forEach(function (a) {
selectedData[a.Name] = {
Bytes_Read: a.output.Bytes_Read,
Bytes_Written: a.output.Bytes_Written
};
});
document.write('<pre>'+JSON.stringify(selectedData, 0, 4)+'</pre>');
更新:也许这就是您想要的。使用设备名称,功能
getDeviceInfo
返回该信息。function getDeviceInfo(deviceName) {
var obj = {};
data.devices.some(function (a) {
if (a.Name === deviceName) {
obj[deviceName] = {
Bytes_Read: a.output.Bytes_Read,
Bytes_Written: a.output.Bytes_Written
};
return true;
}
});
return obj;
}
var data = {
"devices": [{
"Name": "bdev0",
"output": {
"IO_Operations": 0,
"Bytes_Read": 0,
"Bytes_Written": 0
}
}, {
"Name": "bdev1",
"output": {
"IO_Operations": 10,
"Bytes_Read": 20,
"Bytes_Written": 30
}
}]
},
div_one = getDeviceInfo('bdev0'),
div_two = getDeviceInfo('bdev1');
document.write('<pre>' + JSON.stringify(div_one, 0, 4) + '</pre>');
document.write('<pre>' + JSON.stringify(div_two, 0, 4) + '</pre>');
关于javascript - 如何将相同数据集中的json字符串分配给不同的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33216470/