json - 动态添加绑定所需标签 go-gin
问题描述
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
有没有办法添加
binding:"required"
要不json:"name"
硬编码吗?
解决方案
也许您可以在句柄函数中动态覆盖结构,而原始 Person 结构保持不变。像这样 :
func HandleSomething(c *gin.Context) {
type person struct {
Person
Name string `json:"name" binding:"required"`
}
var p person
if err = c.ShouldBind(&p); err != nil {
err = errors.Wrap(util.ErrParams, err.Error())
return
}
response = util.BuildResponse(middleware.PassCode, "Success", list)
c.JSON(http.StatusOK, response)
return
}
推荐阅读
- mysql - 如何将 select 与 IN 运算符和变量值一起使用?
- ionic-framework - Ionic 4 - 包含基于属性值的组件
- python - 如何使用 VSCode 在虚拟环境中调试 python 代码?
- php - 如何连接 slim3 api 端点以提供第 3 方 php 文件
- laravel - 使用 Eloquent 在已连接的表上连接多个表
- azure-devops - 在 WIQL (Azure Dev Ops) 中使用 Group By 和 Count 语句
- javascript - Bootstrap Tabs Vanilla JS 显示的事件不起作用
- cryptography - 将带有 AddDeveloperSigningCredential 的 IdentityServer4 解决方案部署到 IIS 时出现 CryptographicException
- linux - bash 中的 case 语句替代方案
- java - 从 XML 文件中读取值