1

我有一个像下面这样的 JSON

{
    "status": {
        "On Hold": true,
        "Completed": true,
        "Work In Progress": false,
        "Closed": false,
        "Initiation": false
    },
    "application": {
        "Athena":false,
        "EWindow":false,
        "EWS":true,
        "FACT":false,
        "FTP":false,
        "Hardware":false,
        "Harmony":true,
        "Hermes":false
    }
}

我想过滤这个 json 以包含其值为 true 的项目,如下所示

{"status":"On Hold,Completed","application":"EWS,Harmony"}

任何帮助深表感谢

4

1 回答 1

1
var data = {"status":{"On Hold":true,"Completed":true,"Work In Progress":false,"Closed":false,"Initiation":false},"application":{"Athena":false,"EWindow":false,"EWS":true,"FACT":false,"FTP":false,"Hardware":false,"Harmony":true,"Hermes":false}}

var newData = {};
for(var prop in data){
     var subData = data[prop];
     var xs = [];
     for(var subProp in subData){
         if(subData[subProp] === true)
              xs.push(subProp);
     }
     newData[prop] = xs.join(',');
}
于 2013-03-05T11:14:52.890 回答