Javascript(NodeJs) - 将数组和对象转换为 mysql 中的批量插入(Sequelize)

Posted

技术标签:

【中文标题】Javascript(NodeJs) - 将数组和对象转换为 mysql 中的批量插入(Sequelize)【英文标题】:Javascript(NodeJs) - Conversion of Arrays and Objects to bulk insert in mysql(Sequelize) 【发布时间】:2018-05-31 14:36:27 【问题描述】:

这是我的 json:


    "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 或 forEach 或任何其他?

【问题讨论】:

这样的记录只有一条,或者你的JSON上有多条这样的记录? 我需要这个精确的 json 对象 :) 【参考方案1】:

我猜,这就是你想要的。使用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);

【讨论】:

以上是关于Javascript(NodeJs) - 将数组和对象转换为 mysql 中的批量插入(Sequelize)的主要内容,如果未能解决你的问题,请参考以下文章

遇到 Async/Await Promise 问题 - Javascript/Nodejs

NodeJS / Javascript在不同数组中查找具有相同属性的对象

在 NodeJS 中解析 JSON 对象数组

将数据从 mongodb 解析为 javascript 数组对象 [重复]

将数据从 mongodb 解析为 javascript 数组对象 [重复]

Javascript,Nodejs:在文件中搜索特定的单词字符串