go/gin/gorm 解析多维json数组到切片(数组)&批量插入

时间:2025-03-08 09:44:03

需求:

1、api传输多维数据 解析获得数据

2、获得数据执行批量插入

import (
	"encoding/json"
)

func BatchCreatePatient(c *) {	
    //实例化model
    var patient 
	str := `[{"birthday":"1988-01-01T00:00:00Z","name":"而地方","gender":"男"},{"birthday":"1999-01-01T00:00:00Z","name":"短发","gender":"女"}]`
	if str == "" {
		(, str)
		return
	}
    //解析json数组到切片(数组)
	jsonArrStr := []byte(str)
	var jsonSlice []map[string]interface{}
	err := (jsonArrStr, &jsonSlice)
	if err != nil {
		(, err)
		return
	}
    //批量插入数据
    //获取到的数据 可直接使用gorm 的CreateInBatches 进行数据插入
    //CreateInBatches 第一个为interface  第二个参数为 长度
	if err := (&patient).CreateInBatches(jsonSlice, len(jsonSlice)).Error; err != nil {
		(, ())
		return
	}
	(, jsonSlice)
}