small cleanup
1 file changed
tree: 6fe9827a1c94fcf5f1a984cd1486677aa2bef990
  1. json_schema_test_suite/
  2. README.md
  3. schema.go
  4. schema_test.go
  5. schemaDocument.go
  6. schemaPool.go
  7. schemaReferencePool.go
  8. schemaType.go
  9. types.go
  10. validation.go
  11. validationutil.go
README.md

gojsonschema

Description

An implementation of JSON Schema, based on IETF's draft v4 - Go language

Status

Functional, only one feature is missing : dependencies as schemas

Test phase : Passed 97% of Json Schema Test Suite

Internal improvements/refactoring in progress, anyway the interface will not change

Usage

Basic example

package main 

import (
	"github.com/sigu-399/gojsonschema"
	"fmt"
)

func main() {

	schema, err := gojsonschema.NewJsonSchemaDocument("http://myhost/bla/schema1.json")
	// OR
	//schema, err := gojsonschema.NewJsonSchemaDocument("file:///home/me/myschemas/schema1.json")
	
	if err != nil {
		panic(err.Error())
	}

	jsonToValidate, err := gojsonschema.GetHttpJson("http://myotherhost/blu/extract56.json")
	// OR
	//jsonToValidate, err := gojsonschema.GetFileJson("file:///home/billy/hotels.json")
	
	if err != nil {
		panic(err.Error())
	}

	validationResult := schema.Validate(jsonToValidate)

	fmt.Printf("IsValid %v\n", validationResult.IsValid())
	fmt.Printf("%v\n", validationResult.GetErrorMessages())

}

References

###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

Dependencies

https://github.com/sigu-399/gojsonpointer

https://github.com/sigu-399/gojsonreference

Uses

gojsonschema uses the following test suite :

https://github.com/json-schema/JSON-Schema-Test-Suite