根据JSON模式验证结构

时间:2018-02-23 21:05:01

标签: json go jsonschema

我试图编写一个函数,将一个封送结构作为[]字节重新编写,并根据json模式进行验证。

type Person struct {
    ID        string   `json:"id,omitempty" xml:"id,attr"`
    Firstname string   `json:"firstname,omitempty" xml:"name>first" `
    Lastname  string   `json:"lastname,omitempty" xml:"name>last"`
    Address   *Address `json:"address,omitempty"`
}

//JSONPerson parses a person struct to a byte array
func JSONPerson(person []Person) []byte {
    var complete []byte
    for _, item := range person {
        output, err := json.Marshal(item)
        if err != nil {
            fmt.Printf("Error: %v\n", err)
        }
        complete = append(complete, output...)
    }
    return complete
}

func ValidateByte(person []byte) {
    //Loads the schema
    schema, err := jsonschema.Compile("Schemas/test.json")
    if err != nil {
        panic(err)
    }
    reader := bytes.NewReader(person)
    if err = schema.Validate(reader); err != nil {
        panic(err)
    } else {
        fmt.Println("Works fine")
    }
}

执行时我收到此错误http:panic serving [:: 1]:50664:无效字符{在顶级值之后。

我已经使用数据再次测试了一个带有json文件的模式。但无法对结构进行验证。

我正在使用github.com/santhosh-tekuri/jsonschema

0 个答案:

没有答案