英文:
Multiple update using GORM in Golang
问题
我正在尝试使用GIN和GORM创建API。现在我在其中一个API中遇到了问题。这个API将在数据库中创建多个条目。
我有以下的JSON请求体。数组的大小会有所变化。
{
"key": [1, 2]
}
除此之外,我还从URL中获取了其他参数-
key1 := c.Param("value1")
key2 := c.Param("value2")
现在我想要使用key1和key2的数据在数据库中创建多个条目[1, 2],如下所示-
Key1 | Key2 | key |
---|---|---|
value1 | value2 | 1 |
value1 | value2 | 2 |
我在不知道如何读取这个JSON并将数据保存到我的模式(结构体)以创建多个条目的地方卡住了,类似于-
var users = []User{{key1: "value1", "key2": "value2", "key": 1}, {key1: "value1", "key2": "value2", "key": 2}}
db.Create(&users)
请指导我可能的解决方案,因为我对Go语言还不熟悉。
如果需要更多解释,请告诉我。谢谢。
英文:
I am trying to make APIs using GIN and GORM. Now i have stucked in one of the APIs. This API will create multiple entries in the DB.
I have the json body like this. The size of array will vary.
{
"key" : [1,2]
}
With this, I have some other parameter that i am getting from the url-
key1 := c.Param("value1")
key2 := c.Param("value2")
Now i want to create multiple entries [1,2] on DB with data of key1 and key2 like-
Key1 | Key2 | key |
---|---|---|
value1 | value2 | 1 |
value1 | value2 | 2 |
I am stuck at the point where i dont know how to read this json and save the data in my schema (struct) to create multiple entries like-
var users = []User{{key1: "value1", "key2": "value2, "key" :1}, {key1: "value1", "key2": "value2, "key" :2}}
db.Create(&users)
Please guide me to a possible solution as i am new to Go.
Let me know for more clarifications. Thanks
答案1
得分: 1
结构体需求
- 请求 JSON
type BodyJson struct {
Key []int `json:"key"`
}
- 用于 gorm 的用户表结构体
type User struct {
Key int `gorm:"column:key"`
Key1 string `gorm:"column:key1"`
Key2 string `gorm:"column:key2"`
}
将请求的 JSON 解析为 BodyJson 结构体变量
var bodyJson BodyJson
err := json.Unmarshal([]byte(body_json_string), &bodyJson)
遍历 bodyJson.Key
数组,并使用该 key、key1 和 key2 填充一个 User
的切片。
然后使用以下代码保存用户:
db.Create(&users)
希望这可以帮到你。
英文:
Structs needed
- Request json
type BodyJson struct {
Key []int `json:key`
}
- User table struct for gorm
type User struct {
Key int `gorm:"column:key"`
Key1 string `gorm:"column:key1"`
Key2 string `gorm:"column:key2"`
}
Unmarshal body json to BodyJson struct var
var bodyJson BodyJson
err := json.Unmarshal([]byte(body_json_string), &bodyJson)
loop over bodyJson.Key
array and populate an [] of User
with this key, key1 and key2.
Then save the users with
db.Create(&users)
Hope this helps.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论