返回数据不是json for k, v := range Drains { res := common.DB.Create(&v) if res.Error != nil { resp.Code = 500 resp.Msg = "" str := fmt.Sprintf("第%d行出错或数据库存在该数据", k+1) var strs []string strs = append(strs, str) resp.Data = strs } ctx.JSON(200, resp) }
时间: 2024-04-15 10:27:25 浏览: 193
这段代码是一个循环遍历`Drains`的过程,每一次循环都会将当前元素`v`插入到数据库中。如果插入过程中出现错误,会将错误信息添加到`resp.Data`中,并将`resp.Code`设置为500。最后,通过`ctx.JSON(200, resp)`将结果返回给客户端。
根据代码片段,我可以看出返回的结果不是JSON格式的数据。返回的是一个带有错误信息的`resp`结构体。如果你想要返回JSON格式的数据,可以将错误信息封装成JSON对象进行返回。
以下是一种可能的修改方式:
```go
type ErrorResponse struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data []string `json:"data"`
}
// ...
for k, v := range Drains {
res := common.DB.Create(&v)
if res.Error != nil {
resp := ErrorResponse{
Code: 500,
Msg: "",
Data: []string{fmt.Sprintf("第%d行出错或数据库存在该数据", k+1)},
}
ctx.JSON(200, resp)
return
}
}
ctx.JSON(200, gin.H{
"code": 200,
"msg": "成功",
"data": nil,
})
```
这样修改后,无论成功还是失败,都会返回一个JSON对象作为响应。
阅读全文