変換

2017-12-07 3 views
2

これは私のJSONオブジェクトです:変換

{ 
    "groups": 

[ 
     { 
      "id": 1, 
      "groupname": "Angular", 
      "createdAt": "2017-12-05T09:36:05.000Z", 
      "updatedAt": "2017-12-05T09:36:05.000Z", 
      "contactgroups": [ 
      { 
       "id": 1, 
       "contact": 
       { 
        "gsm": "12345" 
       } 
      }, 
      { 
       "id": 3, 
       "contact": 
       { 
        "gsm": "54321" 
       } 
      }, 
      { 
       "id": 4, 
       "contact": 
       { 
        "gsm": "99999" 
       } 
      }], 
      "select": true 
     }, 
     { 
      "id": 2, 
      "groupname": "React", 
      "createdAt": "2017-12-05T09:36:10.000Z", 
      "updatedAt": "2017-12-05T09:36:10.000Z", 
      "contactgroups": [ 
      { 
       "id": 2, 
       "contact": 
       { 
        "gsm": "66666" 
       } 
      }, 
      { 
       "id": 5, 
       "contact": 
       { 
        "gsm": "54321" 
       } 
      }], 
      "select": true 
     }, 
     { 
      "id": 3, 
      "groupname": "Vue", 
      "createdAt": "2017-12-05T09:36:15.000Z", 
      "updatedAt": "2017-12-05T09:36:15.000Z", 
      "contactgroups": [ 
      { 
       "id": 6, 
       "contact": 
       { 
        "gsm": "12345" 
       } 
      }] 
     }, 
    ], 
    "sender": "ifelse", 
    "message": "test" 
} 

私はこのようなオブジェクトの上に変換したい:

[ 
    {"gsm": 12345, "sender": "ifelse", "message": "test"}, 
    {"gsm": 54321, "sender": "ifelse", "message": "test"}, 
    {"gsm": 99999, "sender": "ifelse", "message": "test"}, 
    {"gsm": 66666, "sender": "ifelse", "message": "test"}, 
    {"gsm": 54321, "sender": "ifelse", "message": "test"}, 
    {"gsm": 12345, "sender": "ifelse", "message": "test"}, 

] 

その後のみ、私はできる午前続編で一括挿入する

forやforeachなどの機能を使用してこれを行う方法はありますか?このことをやったことは?

はもっと良いですか?地図とすることは可能ですか?

私は最終的なjsonオブジェクトを必要とし、一括作成することを許可し続けるだけです。

シモンズ:私は "選択" します:真のJSON GSM番号をのみ

答えて

2

あなたのケースでは、私はJSONオブジェクト

var data={ 
 
    "groups": 
 

 
[ 
 
     { 
 
      "id": 1, 
 
      "groupname": "Angular", 
 
      "createdAt": "2017-12-05T09:36:05.000Z", 
 
      "updatedAt": "2017-12-05T09:36:05.000Z", 
 
      "contactgroups": [ 
 
      { 
 
       "id": 1, 
 
       "contact": 
 
       { 
 
        "gsm": "12345" 
 
       } 
 
      }, 
 
      { 
 
       "id": 3, 
 
       "contact": 
 
       { 
 
        "gsm": "54321" 
 
       } 
 
      }, 
 
      { 
 
       "id": 4, 
 
       "contact": 
 
       { 
 
        "gsm": "99999" 
 
       } 
 
      }], 
 
      "select": true 
 
     }, 
 
     { 
 
      "id": 2, 
 
      "groupname": "React", 
 
      "createdAt": "2017-12-05T09:36:10.000Z", 
 
      "updatedAt": "2017-12-05T09:36:10.000Z", 
 
      "contactgroups": [ 
 
      { 
 
       "id": 2, 
 
       "contact": 
 
       { 
 
        "gsm": "66666" 
 
       } 
 
      }, 
 
      { 
 
       "id": 5, 
 
       "contact": 
 
       { 
 
        "gsm": "54321" 
 
       } 
 
      }], 
 
      "select": true 
 
     }, 
 
     { 
 
      "id": 3, 
 
      "groupname": "Vue", 
 
      "createdAt": "2017-12-05T09:36:15.000Z", 
 
      "updatedAt": "2017-12-05T09:36:15.000Z", 
 
      "contactgroups": [ 
 
      { 
 
       "id": 6, 
 
       "contact": 
 
       { 
 
        "gsm": "12345" 
 
       } 
 
      }] 
 
     }, 
 
    ], 
 
    "sender": "ifelse", 
 
    "message": "test" 
 
} 
 

 

 
    var result=[ 
 
     {"gsm": 12345, "sender": "ifelse", "message": "test"}, 
 
     {"gsm": 54321, "sender": "ifelse", "message": "test"}, 
 
     {"gsm": 99999, "sender": "ifelse", "message": "test"}, 
 
     {"gsm": 66666, "sender": "ifelse", "message": "test"}, 
 
     {"gsm": 54321, "sender": "ifelse", "message": "test"}, 
 
     {"gsm": 12345, "sender": "ifelse", "message": "test"}, 
 

 
    ] 
 
    var arr=[]; 
 
    for(var i=0;i<data.groups.length;i++){ 
 
     if(data.groups[i].select){ 
 
     for(var j=0;j<data.groups[i].contactgroups.length;j++){ arr.push({gsm:data.groups[i].contactgroups[j].contact.gsm,sender:data.sender,message:data.message});  
 
     } 
 
     } 
 
    } 
 
    console.log(arr);

+0

仲間、その働いたが、問題のわずか少しの変更で、私は今この質問を編集しなければなりませんか?または新しい質問を投稿し、そのリンクをここに投稿しますか? –

+1

あなたは何を編集しようとしていますか? @MohamedSameer –

+1

今私のjsonオブジェクトを参照してください –

2

lodashで試し作るためにforループを使用しています

var result = _.flatten(data.groups.map(r => r.contactgroups)) 
       .map(r => ({ gsm: r.contact.gsm, sender: "ifelse", message: "test" }) 
); 

console.log(result); 

更新#2 - フィルタ

var result = _.flatten(_.filter(data.groups,{'select': true }).map(r => r.contactgroups)) 
       .map(r => ({ gsm: r.contact.gsm, sender: "ifelse", message: "test" }) 
); 

console.log(result); 
+0

nice :)私は "select"をしたい:true json gsm numbers only –