我试图编写一个函数,将一个封送结构作为[]字节重新编写,并根据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文件的模式。但无法对结构进行验证。