2017-12-18 5 views
2

は、これが私のJSONです:のJavascript(NodeJs) - MySQLでの一括挿入に配列とオブジェクトの変換(Sequelize)

{ 
    "senderName": "ifelse", 
    "message": "Hi", 
    "groups": [ 
    { 
     "id": 14, 
     "groupname": "Angular", 
     "contactgroups": [ 
     { 
      "id": 1, 
      "contact": { 
       "id": 1, 
       "gsm": "123456789" 
      } 
     }, 
     { 
      "id": 3, 
      "contact": { 
       "id": 2, 
       "gsm": "111111111" 
      } 
     }], 
     "select": true 
    }], 
    "draftData": { 
     "contacts": [ 
     ] 
    } 
} 

どのように上記のJSONを作るために:私はしたい

[{phoneno: 123456789; sender: ifelse ; message: Hi},{phoneno: 11111111; sender: ifelse ; message: Hi}] 

gsmオブジェクトキー

これを行うにはどの方法が最適ですか? forまたはeachまたはanyotherのために?

+1

このように1つのレコードのみが存在したり、JSON上でこのような複数のレコードがあるのですか? –

+3

私はこの正確なjsonオブジェクトが必要です:) –

答えて

4

私はこれがあなたの望むものだと思います。 mapを使用して、でcontactgroupsを新しい配列に変換してください。

var data = { 
 
    "senderName": "ifelse", 
 
    "message": "Hi", 
 
    "groups": [{ 
 
    "id": 14, 
 
    "groupname": "Angular", 
 
    "contactgroups": [{ 
 
     "id": 1, 
 
     "contact": { 
 
      "id": 1, 
 
      "gsm": "123456789" 
 
     } 
 
     }, 
 
     { 
 
     "id": 3, 
 
     "contact": { 
 
      "id": 2, 
 
      "gsm": "111111111" 
 
     } 
 
     } 
 
    ], 
 
    "select": true 
 
    }], 
 
    "draftData": { 
 
    "contacts": [] 
 
    } 
 
} 
 

 
var result = data.groups[0].contactgroups.map(i => { 
 
    return { 
 
    phoneno: i.contact.gsm, 
 
    sender: data.senderName, 
 
    message: data.message 
 
    } 
 
}) 
 

 
console.log(result);

関連する問題