2013-03-05 43 views
1

我有一个JSON像下面过滤一个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包含它的价值就为真像下面

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

任何帮助深表感谢

项目
+0

请注意,您需要从javascript或java过滤,也让我们知道您从Web服务或NoSQL DB检索的json,如couchDB,Mango DB等? – Fahad 2013-03-05 11:18:03

+0

@karaxuna答案很安静! – Garfield 2013-03-05 11:37:22

+0

为什么用angularjs标记?你想要AngularJS过滤器还是...? – Stewie 2013-03-05 11:44:47

回答

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(','); 
} 
+0

Thanks。这工作。 – Saravanan 2013-03-05 12:05:03

+0

@ user548846欢迎您:) – karaxuna 2013-03-05 12:05:40