2016-09-09 8 views
0

私は以下のjsonを持っています。これをトラバースして、 'check'値が 'true'であるキーの値を取得したいと思います。jsonへの角度付加値

{ 
    "A_B":{ 
    "ID":"09|_|06", 
    "address":"ABC", 
    "name":"2222222222", 
    "Documents":{ 
     "1":{ 
     "format":"xlsx" 
     }, 
     "2":{ 
     "format":"pdf" 
     } 
    }, 
    "check":true 
    }, 
    "C_B":{ 
    "ID":"0a|_|0b", 
    "address":"Los Angeles", 
    "name":"4444444444", 
    "Documents":{ 
     "1":{ 
     "format":"docx" 
     }, 
     "4":{ 
     "format":"xlsx" 
     } 
    }, 
    "check":true 
    }, 
    "C_E":{ 

    "ID":"05|_|06", 
    "address":"", 
    "name":"1111111111", 
    "Documents":{ 
     "5":{ 
     "format":"xlsx" 
     } 
    }, 
    "check":false 
    } 
} 

上記の例では、A_BとC_Bの値を新しいjsonに追加する必要があります。新しいJSONはしかし、私はないです、私は以下のコード

var IDs = Object.keys(completeJson); 
var checkTrueIDs = IDs.reduce(function(initArr,ID) { 
     if(completeJson.check === true) { 
       initArr.push(ID); 
     } 
     return initArr; 
},[]); 
console.log("IDs wth check === true - " + checkTrueIDs); 

を使用して、真=== [チェック]これらのID [A_BとC_B]を取得することができています

{ 
    "A_B":{ 
    "ID":"09|_|06", 
    "address":"ABC", 
    "name":"2222222222", 
    "Documents":{ 
     "1":{ 
     "format":"xlsx" 
     }, 
     "2":{ 
     "format":"pdf" 
     } 
    }, 
    "check":true 
    }, 
    "C_B":{ 
    "ID":"0a|_|0b", 
    "address":"Los Angeles", 
    "name":"4444444444", 
    "Documents":{ 
     "1":{ 
     "format":"docx" 
     }, 
     "4":{ 
     "format":"xlsx" 
     } 
    }, 
    "check":true 
    } 
} 

ようになります。これらのIDの完全なオブジェクトを取得して新しいJSONに追加することができます。私は

var newJson = {} 

を行い、その後の条件であれば(プッシュ以下)

newJson = completeJson[ID]; 

の内側に、これは以前の値を上書きするので、最終的に私は1つのオブジェクトのみを残しています。場合

+0

この質問に_any_jsonはありません。それらは単なるJavaScriptオブジェクトです。 – Cerbrus

答えて

0

オブジェクトの繰り返し処理が可能で、キーチェックがtrueの場合はnewJsonオブジェクトに追加できます。

var newJson ={}; 
    angular.forEach(completeJson, function(value, key) { 
    if(value.check){ 
    newJson[key] = value; 
    } 
    }); 
console.log(newJson); 
関連する問題