Go 处理JSON绑定中的省略值(int)时生成错误
使用gin-gonic,我想确定何时从传入的JSON请求中忽略整数值,即使零是一个可能的值。换句话说,零是一个有效值,但我们不能假定为默认值。使用指针构建结构似乎相反,因为没有不存在值的有效对象。在封送处理过程中,我想知道是否有字段未填充 我正在使用OpenAPI定义带有“必需”字段的接口,我希望错误响应与API定义匹配。我正在使用代码生成器创建正在填充的web模型。我希望避免将JSON编组到映射中,验证映射,然后填充模型 例如:Go 处理JSON绑定中的省略值(int)时生成错误,go,go-gin,Go,Go Gin,使用gin-gonic,我想确定何时从传入的JSON请求中忽略整数值,即使零是一个可能的值。换句话说,零是一个有效值,但我们不能假定为默认值。使用指针构建结构似乎相反,因为没有不存在值的有效对象。在封送处理过程中,我想知道是否有字段未填充 我正在使用OpenAPI定义带有“必需”字段的接口,我希望错误响应与API定义匹配。我正在使用代码生成器创建正在填充的web模型。我希望避免将JSON编组到映射中,验证映射,然后填充模型 例如: type mouth struct { teeth int
type mouth struct {
teeth int
fillings int
}
当前,{}
的请求有效
默认绑定行为是,如果未提供零,则在字段中静默写入零,但我希望生成一个错误。似乎您的代码生成器需要支持为您的模型生成自定义标记。然后您可以引用,这表明有一个“binding”标记,您可以使用它来声明需要哪个字段。似乎您的代码生成器需要支持为您的模型生成自定义标记。然后您可以引用,这表示有一个“binding”标记,您可以使用它来声明需要哪个字段。使用指针构建结构似乎相反,因为没有不存在值的有效对象。您的意思是说
nil
和json中的not contain字段之间有区别吗?我认为没有映射或手动解析数据是不可能的。使用指针构建结构似乎相反,因为没有不存在值的有效对象。您的意思是说nil
和json中的not contain字段之间有区别吗?我认为如果没有地图或手动解析数据,这是不可能的。
func ProcessTi0(c *gin.Context) {
var b mouth
err = c.Bind(&b)
if err != nil {
c.JSON(400, gin.H{
"err": err,
})
}
....
}