【发布时间】:2022-01-17 08:02:58
【问题描述】:
我从反应前端收到以下 POST 请求 json 数据
{
"field_one": "first",
"field_two": "second",
"field_three": "3.00"
}
但我希望 golang 在处理请求之前将其转换为这个
{
"field_one": "first",
"field_two": "second",
"field_three": 3.00
}
我想将 field_three 从字符串转换为 float64,但我无法让 golang 接受字符串并处理正确的数据类型
这是我处理 POST 请求数据的 golang 函数
func PostCreate(c *fiber.Ctx) error {
type PostCreateData struct {
fieldOne string `json:"field_one" form:"field_one" validate:"required"`
fieldTwo string `json:"field_two" form:"field_two" validate:"required"`
fieldThree float64 `json:"field_three" form:"field_three" validate:"required"`
}
data := PostCreateCreateData{}
if err := c.BodyParser(&data); err != nil {
return err
}
validate := validator.New()
if err := validate.Struct(data); err != nil {
return err
}
postCreate := models.PostCreate{
fieldOne: data.fieldOne,
fieldTwo: data.fieldTwo,
fieldThree: float64(data.fieldThree),
}
database.DB.Create(&postCreate)
return c.JSON(postCreate)
}
当前请求没有得到处理,因为 field_three 的错误数据类型应该是 float64 但前端将所有内容都作为字符串发送
我在这里缺少哪些步骤?
【问题讨论】:
-
this 有帮助吗?
-
a和b中的内容是什么?在err := json.Unmarshal([]byte(a), b)我想b将是&data但a中会是什么以及我放置代码行的位置是什么?