我正在使用 Beego 框架在 Go 中构建 Web 应用程序。我必须验证 API 请求中传入的 JSON。
我可以将 JSON 解码为一个工作正常的结构,但我也想验证数据。例如,如果类型与 struct json 中的类型不匹配。Unmarshal 将在第一次出现时返回错误。我想一次验证并获取 JSON 的所有错误。
我试过 https://github.com/thedevsaddam/govalidator
但包需要引用请求对象,这在 Beego 的 Controller 中不可用。还有其他验证器可以验证结构,但我也想要 json 验证。
编辑:
可以从 Controller 的上下文对象中找到对beego中请求对象的引用:
func (this *MainController) Post() {
fmt.Println(this.Ctx.Request)
}
但是问题仍然与 json 解码相同。如果类型有任何轻微的不匹配,json.unmarshal 将立即崩溃。我也希望能够验证类型。
最佳答案
自 Golang v1.9 json.Valid([]byte)
以来,“encoding/json”包中提供了一个有效的方法。
关于json - 如何使用 Golang 验证 JSON 输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56378317/