func main() { filePtr := flag.String("file", "security.json", "file to parse") errorPtr := flag.Int("maxerror", 5, "maximum number of errors before abort") schemaPtr := flag.String("schema", "", "schema to use for validation") levelPtr := flag.String("level", "error", "level of logging (trace, info, warning, error)") // schemaPtr := flag.String("schema", "http://swagger.io/v2/schema.json#", "schema to use for validation") flag.Parse() file := *filePtr maxError := *errorPtr schemaFile := *schemaPtr level := *levelPtr fmt.Println("file", file) var parser *JSONParse.JSONParser if len(file) > 0 { parser = JSONParse.NewJSONParser(file, maxError, level) valDoc, errs := parser.Parse() if !valDoc { fmt.Println(errs) } } if len(schemaFile) > 0 { fmt.Println("parse schema") schema := JSONParse.NewJSONSchema(schemaFile, level) fmt.Println("validate file") valid, errs := schema.ValidateDocument(file) if !valid { errs.Output() } } if flag.Arg(0) == "pretty" { fmt.Println(parser.Pretty()) } // schema := JSONParse.NewJSONParser(schemaFile, maxError, level) // valid, errors = schema.Parse() // JSONParse.ValidateAgainstSchema(parser.GetDoc(), schema.GetDoc()) // fmt.Println(parser.Pretty()) }
func main() { filePtr := flag.String("file", "security.json", "file to parse") errorPtr := flag.Int("maxerror", 8, "maximum number of errors before abort") schemaPtr := flag.String("schema", "", "schema to use for validation") levelPtr := flag.String("level", "error", "level of logging (trace, info, warning, error)") flag.Parse() file := *filePtr maxError := *errorPtr schemaFile := *schemaPtr level := *levelPtr fmt.Println("parse file", file) var parser *JSONParse.JSONParser if len(file) > 0 { parser = JSONParse.NewJSONParser(file, maxError, level) valDoc, errs := parser.Parse() if !valDoc { fmt.Println(errs) os.Exit(1) } } fmt.Println(" -valid json file") if len(schemaFile) > 0 { fmt.Println("load schema") schema := JSONParse.NewJSONSchema(schemaFile, level) fmt.Println(" -validate file against schema", schemaFile) valid, errs := schema.ValidateDocument(file) if !valid { errs.Output() fmt.Println(" -document is not valid against schema") os.Exit(1) } } fmt.Println(" -documente is valid against schema") }