User guide
×
Menu

JSON Schema analyzer

 
JSONBuddy is the only JSON editor that has a built-in JSON schema analyzer as your assistant while you are editing your JSON schema documents.
The analyzer runs in the background and reports any issues immediately:
 
 
Currently, the JSON editor can report the following issues as errors, warnings or simple messages:
 
1. Undefined type in schema branch - Reported if a type definition is missing.
2. Unknown type specifier - Often a typo. An unknown type specifier is used.
3. Unknown schema keyword - A schema keyword is found, which is not known for this schema draft.
4. Ambiguous schema keyword - A schema keyword is used more than once at the JSON schema branch.
5. Unresolved local $ref - Extremely useful. The JSON pointer of the $ref can't be resolved.
6. Unresolved external $ref - Also for external schema references. The referenced schema can't be loaded.
7. Recursive $ref - A message about a recursive $ref.
8. Empty required array - Only for draft 4. Any empty required array is reported.
9. Required property not found in schema branch - This one can be tricky. A required property is not defined at the current schema branch.
10. Empty "not" - An empty "not" can actually never be satisfied.
11. Empty "pattern" - The "pattern" field for string types is not filled.
12. Field multiple defintions - A schema field has multiple definitions.
13. "maximum" less "minimum" - The "minimum" field is greater than the "maximum" value.
14. "maxLength" less "minLength" - For strings, "maxLength" value is less than "minLength".
15. Array fields but no array type - Schema fields related to arrays are used but no array type is specified.
16. Unused definitions - There is a definition which is never used in the local schema.
17. Multiple defintions of property - A property is defined one more than once at the JSON schema branch.
 
Please note some of them are just messages like reporting an empty required array, some are warnings and others are reported as errors like an unresolved $ref. As usual, if you click at one of the entries, the selection jumps to the location in the JSON schema based on the reported JSON pointer.