首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将同一数据集中的json字符串分配给不同的变量

如何将同一数据集中的json字符串分配给不同的变量
EN

Stack Overflow用户
提问于 2015-10-19 22:01:45
回答 2查看 39关注 0票数 0

我有一个数据集,其中有许多具有相似属性(输出)的设备。(例如下面给出的示例2)。我不明白的是,我如何获取每个具有新名称的设备,并将其分配给例如一个新的div。数据集中可以有许多设备。如何告诉我的代码每当有新设备时,取出bytes_read和bytes_written并将它们分配给新的div,例如assign

代码语言:javascript
复制
"bdev0": {"Bytes_Read": 0,   "Bytes_Written": 0} to div_one 
"bdev1": {"Bytes_Read": 10, "Bytes_Written": 20  } to div_two 

注意,我不能使用像data.devices这样的东西,因为有很多设备,它们的名称一直在变化,例如bdev0,bdev1,bdev2,bde3。下面是给出的数据集的示例:

代码语言:javascript
复制
 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,我应该怎么做?

代码语言:javascript
复制
        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)

结果

代码语言:javascript
复制
 {"Bytes_read":0,"Bytes_written":0}
    {"Bytes_read":20,"Bytes_written":30}

它提供了我想要的数据,但我不知道如何将这些集合分配给var a和var b。

EN

回答 2

Stack Overflow用户

发布于 2015-10-19 22:25:42

如果您有设备的名称,则可以将其用作访问数据的密钥。

代码语言:javascript
复制
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返回信息。

代码语言:javascript
复制
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>');

票数 2
EN

Stack Overflow用户

发布于 2015-10-19 22:15:27

我不太清楚你想要达到什么目的。下面的代码将获取数组中每个元素的output属性,并在Namebdev0时将a设置为其值,否则将其设置为b。我希望这就是你所需要的:

代码语言:javascript
复制
var a, b;
if (data[0]['Name'] === 'bdev0') {
    a = JSON.stringify(data[0]['output']); // bdev0
    b = JSON.stringify(data[1]['output']); // bdev1
} else {
    a = JSON.stringify(data[1]['output']); // bdev1
    b = JSON.stringify(data[0]['output']); // bdev0
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33216470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档