1 Star 0 Fork 0

刘世杰/jsonschema

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
schema_test.go 3.17 KB
一键复制 编辑 原始数据 按行查看 历史
1581503100 提交于 2020-07-21 14:53 . update schema
package jsonschema
import (
//"context"
"encoding/json"
"fmt"
//"github.com/qri-io/jsonschema"
"testing"
)
func TestCreateNew(t *testing.T) {
var f Schema
if err := json.Unmarshal(schema, &f); err != nil {
panic(err)
}
iv := map[string]interface{}{
"a": map[string]interface{}{
"a1": "",
"a2": "1",
"a3": "1",
"a4": float64(-8),
},
"b": map[string]interface{}{
//"a1": "dd",
"a2": "1",
"a3": "1",
"a4": "",
"b6": "",
},
"c": map[string]interface{}{
"a1": "",
"a2": "1",
"a3": "1",
"a5": float64(-5.1),
"a9": float64(0),
},
//"age":"4",
//"fs":3,
//"sons":[]interface{}{1,2,3},
}
type req struct {
Name string `json:"name"`
Any string `json:"any"`
}
r := &req{
Name: "jake2",
}
var errs error
for i := 0; i < 1; i++ {
//var errs = []Error{}
errs = f.Validate(iv)
//errs =f.Validate(r)
//fmt.Println(errs)
}
fmt.Println(r, iv, errs)
//jsonschema.Properties{}
//var a interface{} = 1
//var b float64 = 1
//fmt.Println(reflect.DeepEqual(a,b))
}
//func TestCreateNew2(t *testing.T){
//
// sc:=&jsonschema.Schema{}
// if err:=json.Unmarshal(schema,sc);err != nil{
// panic(err)
// }
// iv:=map[string]interface{}{
// "a":map[string]interface{}{
// "a1":"23",
// "a2":"1",
// "a3":"1",
// "a4":"1",
// },
// "b":map[string]interface{}{
// "a1":"1",
// "a2":"1",
// "a3":"1",
// "a4":"1",
// },
// "c":map[string]interface{}{
// "a1":"1",
// "a2":"1",
// "a3":"1",
// "a4":"5",
// },
// //"age":"4",
// //"fs":3,
// //"sons":[]interface{}{1,2,3},
// }
// for i:=0;i<100000;i++{
// //var errs = []Error{}
// sc.Validate(context.Background(),iv)
// //fmt.Println(errs)
// //fmt.Println(st.Errs)
// }
//}
var schema = []byte(`
{
"type": "object",
"properties": {
"a": {
"switch":"a1",
"case":{
"a":{"required":["b1","c1"]},
"b":{"required":["b2","c2"]}
},
"default":{},
"type": "object",
"properties": {
"a1": {
"type": "string",
"maxLength": 5
},
"a2": {
"type": "string",
"maxLength": 5
},
"a3": {
"type": "string",
"maxLength": 5
},
"a4": {"type": "string|number","multipleOf":4}
}
},
"b": {
"type": "object",
"if":{
"required":["a1"]
},
"then":{
"required":["b5"]
},
"else":{"required":["b6"]},
"properties": {
"a1": {
"type": "string",
"maxLength": 5,
"enum":["dd"]
},
"a2": {
"type": "string"
},
"a3": {
"type": "string",
"maxLength": 5
},
"a4": {
"type": "string"
},
"b6": {
"type": "string"
}
}
},
"c": {
"type": "object",
"additionalProperties":true,
"properties": {
"a1": {
"type": "string",
"maxLength": 0
},
"a2": {
"type": "string"
},
"a3": {
"type": "string",
"maxLength": 5
},
"a4": {
"type": "string"
},
"a5":{
"type":"integer",
"maximum":0
}
}
}
}
}
`)
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/seeadoog/jsonschema.git
git@gitee.com:seeadoog/jsonschema.git
seeadoog
jsonschema
jsonschema
master

搜索帮助