2017-12-18 199 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對象密鑰

哪一個是最好的方法來做到這一點?爲或爲每個或另一個?

+1

只有一個這樣的記錄或有多個記錄,這樣你的JSON? –

+3

我需要這個確切的json對象:) –

回答

4

我想,這是你想要的。使用mapcontactgroups轉換爲phoneno的新陣列。

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);