百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
G

gojsonschema

> 编程语言
开源

一个JSON Schema的实现,支持draft v4、v6和v7 - Go语言

2.7K stars0 点赞2 次浏览
访问官网GitHub

工具介绍

一个JSON Schema的实现,支持draft v4、v6和v7 - Go语言

gojsonschema

描述

这是为 Go 编程语言实现的一个 JSON Schema 库。支持 draft-04、draft-06 和 draft-07。

参考资料:

  • http://json-schema.org
  • http://json-schema.org/latest/json-schema-core.html
  • http://json-schema.org/latest/json-schema-validation.html

安装

go get github.com/xeipuuv/gojsonschema

依赖项:

  • GitHub.com/xeipuuv/gojsonpointer
  • GitHub.com/xeipuuv/gojsonreference
  • GitHub.com/stretchr/testify/assert

用法

示例

…

加载器

有多种方式可以加载你的 JSON 数据。 为了加载你的 schema 和文档, 首先声明一个合适的加载器:

  • 通过引用加载 Web / HTTP 资源:
go
loader := gojsonschema.NewReferenceLoader("http://www.some_host.com/schema.json")
  • 通过引用加载本地文件:
go
loader := gojsonschema.NewReferenceLoader("file:///home/me/schema.json")

引用使用URI方案,需要前缀(file://)和文件的完整路径。

  • JSON字符串:
go
loader := gojsonschema.NewStringLoader(`{"type": "string"}`)
  • 自定义Go类型:
go
m := map[string]interface{}{"type": "string"}
loader := gojsonschema.NewGoLoader(m)

以及

go
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)

验证

一旦加载器设置完成,验证就很简单:

go
result, err := gojsonschema.Validate(schemaLoader, documentLoader)

或者,您可能希望只加载一次模式,然后进行多次验证:

go
schema, err := gojsonschema.NewSchema(schemaLoader)
...
result1, err := schema.Validate(documentLoader1)
...
result2, err := schema.Validate(documentLoader2)
...
// etc ...

要检查结果:

go
    if result.Valid() {
    	fmt.Printf("该文档有效\n")
    }

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Go

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言