json - 如何使用 Golang 验证 JSON 输入?

标签 json validation go beego

我正在使用 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”包中提供了一个有效的方法。

引用: https://golang.org/pkg/encoding/json/#Valid

关于json - 如何使用 Golang 验证 JSON 输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56378317/

相关文章:

python - 按钮上的应用程序名称

validation - 调试 CloudFormation 验证问题

arrays - Laravel 数组字段验证

go - 初学者级别代码的死锁

regex - 在Go中的README.md中的注释标签之间插入链接

javascript - 从 json 到 View 的 AngularJs 数据绑定(bind)

java - 如何使用 Jackson 反序列化对象侧面的对象数组?

json - OpenShift V3 : understanding the process with Docker

python - 将不同数据框中的 2 列与主键条件进行比较,无需合并

go - 如何使用json.decoder忽略空的JSON字段