一个JSON Schema的实现,支持draft v4、v6和v7 - Go语言
这是为 Go 编程语言实现的一个 JSON Schema 库。支持 draft-04、draft-06 和 draft-07。
参考资料:
go get github.com/xeipuuv/gojsonschema依赖项:
…有多种方式可以加载你的 JSON 数据。 为了加载你的 schema 和文档, 首先声明一个合适的加载器:
loader := gojsonschema.NewReferenceLoader("http://www.some_host.com/schema.json")loader := gojsonschema.NewReferenceLoader("file:///home/me/schema.json")引用使用URI方案,需要前缀(file://)和文件的完整路径。
loader := gojsonschema.NewStringLoader(`{"type": "string"}`)m := map[string]interface{}{"type": "string"}
loader := gojsonschema.NewGoLoader(m)以及
type Root struct {
Users []User `json:"users"`
}
type User struct {
Name string `json:"name"`
}
...
data := Root{}
data.Users = append(data.Users, User{"John"})
data.Users = append(data.Users, User{"Sophia"})
data.Users = append(data.Users, User{"Bill"})
loader := gojsonschema.NewGoLoader(data)一旦加载器设置完成,验证就很简单:
result, err := gojsonschema.Validate(schemaLoader, documentLoader)或者,您可能希望只加载一次模式,然后进行多次验证:
schema, err := gojsonschema.NewSchema(schemaLoader)
...
result1, err := schema.Validate(documentLoader1)
...
result2, err := schema.Validate(documentLoader2)
...
// etc ...要检查结果:
if result.Valid() {
fmt.Printf("该文档有效\n")
}暂无开放 Issues,或尚未同步最近议题。