package main import ( "fmt" "github.com/sigu-399/gojsonschema" ) func main() { // use a remote schema schema, err := gojsonschema.NewJsonSchemaDocument("http://myhost/schema1.json") // ... or a local file //schema, err := gojsonschema.NewJsonSchemaDocument("file:///home/me/myschemas/schema1.json") if err != nil { panic(err.Error()) } // use a remote json to validate jsonToValidate, err := gojsonschema.GetHttpJson("http://myhost/someDoc1.json") // ... or a local one //jsonToValidate, err := gojsonschema.GetFileJson("/home/me/mydata/someDoc1.json") if err != nil { panic(err.Error()) } validationResult := schema.Validate(jsonToValidate) if validationResult.IsValid() { fmt.Printf("The document is valid\n") } else { fmt.Printf("The document is not valid. see errors :\n") for _, errorMessage := range validationResult.GetErrorMessages() { fmt.Printf("- %s\n", errorMessage) } } }
###Website http://json-schema.org
###Schema Core http://json-schema.org/latest/json-schema-core.html
###Schema Validation http://json-schema.org/latest/json-schema-validation.html
https://github.com/sigu-399/gojsonpointer
https://github.com/sigu-399/gojsonreference
gojsonschema uses the following test suite :