Go语言通过第三方库xeipuuv/gojsonschema实现JSON Schema校验,支持Draft 4规范,可定义结构规则并验证JSON数据,如字段类型、必填项、数值范围和格式(如email),使用NewStringLoader或NewReferenceLoader加载Schema和数据,Validate执行校验,result.Valid()判断结果,Errors()获取详细错误信息,适用于API请求验证等场景。

在 Go 语言中,虽然标准库 encoding/json 提供了 JSON 的编码与解码功能,但并未内置对 JSON Schema 的校验支持。如果需要验证 JSON 数据是否符合预定义的结构和规则,可以通过第三方库来实现。一个常用且轻量的选择是 xeipuuv/gojsonschema,它完整实现了 JSON Schema Draft 4 规范。
使用以下命令安装 JSON Schema 校验库:
go get github.com/xeipuuv/gojsonschema下面是一个简单的例子,展示如何用 Go 定义 JSON Schema 并校验输入的 JSON 数据。
假设我们有一个用户信息的 JSON 结构,要求:
立即学习“go语言免费学习笔记(深入)”;
对应的 JSON Schema 如下:
const userSchema = `{待校验的 JSON 数据:
const inputJSON = `{完整的校验代码:
package main当 result.Valid() 返回 false 时,可以通过 result.Errors() 获取详细的错误列表。每个错误包含字段路径、类型和具体原因,例如:
这些信息可用于调试或返回给 API 调用方作为提示。
除了字符串,你也可以从本地文件或 HTTP URL 加载 Schema 和数据:
schemaLoader := gojsonschema.NewReferenceLoader("file:///path/to/schema.json")注意使用 file:// 或 http(s):// 前缀触发引用加载器。
基本上就这些。使用 gojsonschema 可以快速实现结构化 JSON 校验,适合配置解析、API 请求验证等场景。不复杂但容易忽略的是格式关键字(如 email、uri)必须显式启用,某些高级特性如条件校验也需注意版本兼容性。
以上就是Golang如何实现简单的JSON Schema校验_Golang JSON Schema验证示例的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号