过滤json值

时间:2016-12-21 22:31:38

标签: json node.js

我有一个返回json对象的进程:

data={key1:[], key2:[], key3:[{key1:"a"}, {key2:"b"}], key4:[{key1:"c"}, {key2:"d"}]}

我想知道是否有一种简单的方法来过滤这个json对象,以删除值为空数组的属性。

一旦过滤,我就可以遍历剩余的属性并对数组元素进行操作。

4 个答案:

答案 0 :(得分:0)

我更愿意创建一个省略空数组的新对象,而不是从现有对象中删除。

________

答案 1 :(得分:0)

使用lodash应该会非常简单:

var filtered = _.omitBy(data, function(value) {
    return Array.isArray(value) && value.length == 0;
});

现在,您可以遍历已过滤对象中的其余元素,以对其进行进一步操作。

答案 2 :(得分:0)

首先,我们必须遍历对象中的属性。

if (data[prop].length == 0) {
    delete data[prop]
}

然后,这是一个过滤掉空数组属性的简单检查

for (var prop in data) {
    if (data.hasOwnProperty(prop)) {
        if (data[prop].length == 0) {
            delete data[prop]
        }
    }
}

完整的解决方案,

$row=array(
      'downloadvideo' => '=HYPERLINK("'.$this->linkVideo.'";"Download")',
);

$listFeed->insert($row);

答案 3 :(得分:0)

试试这个有用的演示:

var data = {
             key1:[], 
             key2:[], 
             key3:[
                    {key1:"a"}, 
                    {key2:"b"}
                  ], 
             key4:[
             	    {key1:"c"}, 
                    {key2:"d"}
                  ]
};

for (var i in data) {
    if (data[i].length == 0) {
      delete data[i]
    }
}

console.log(data);