JSON: javascript中的键值连接



我试图解析json对象,以获得键和值连接到一个变量。我希望从给定的json输出:

"/" - 7.84 GiB; "/opt" - 4.86 GiB; "/usr" - 4.80 GiB

使用我的代码片段,我可以获得对象,但难以获得所需格式的名称和值。请协助。

for (i = 0; i < obj.length; i++) 
{
 if  ( obj[i].name === 'mountpoints') 
 {
 js_mountpoints = obj[i].value;
 break;
 }
 js_mountpoints = 'NA';
}

JSON输入:

[{
    "name" : "pe_build",
    "value" : "2016.2.1"
}, 
{
    "name" : "kernel",
    "value" : "Linux"
}, {
    "name" : "blockdevices",
    "value" : "sda,sdb,sr0"
},
{
    "name" : "mountpoints",
    "value" : {
        "/boot/efi" : {
            "size_bytes" : 261861376,
            "size" : "249.73 MiB",
            "capacity" : "0%"
        },
        "/opt" : {
            "size_bytes" : 2086666240,
            "size" : "1.94 GiB",
            "capacity" : "1.64%"
        },
        "/boot" : {
            "size_bytes" : 258650112,
            "size" : "246.67 MiB",
            "capacity" : "74.28%"
        },
        "/var" : {
            "size_bytes" : 10475274240,
            "size" : "9.76 GiB",
            "filesystem" : "xfs",
            "capacity" : "4.01%"
        }
    }
    },  {
    "name" : "uptime_seconds",
    "value" : 244181
}, {
"name" : "memoryfree",
"value" : "6.66 GiB"
}, {
"name" : "memoryfree_mb",
"value" : 6816.91796875
}
]
finalStr = ''
Object.keys(obj).forEach(function(key) {
  if (obj[key].name === 'mountpoints') { // only get sizes for mountpoints
    var value = obj[key].value;
    Object.keys(value).forEach(function(name) { // add all sizes to string
      finalStr += '"' + name + '" - ' + value[name].size + ';';
    }); //update
  }
}); //update
if (finalStr.length > 0) { // at least one entry was added
  finalStr.slice(0, -1);
}

最新更新