Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom Properties in JSON Schema

Is it valid to extend a JSON schema with custom properties?

The reason I am asking is, because I am using a schema to also render a form for the JSON the schema describes (each property described in the schema is used as a form element with label and some sort of input).

It would be useful to be able to extend the schema with some properties that I mainly use for the form rendering, but that would be ignored when using the schema to validate the JSON object itself.

I could have two different representations for the JSON object (one being the schema and one being the schema like object with custom properties that I just for creating the form, but it would be easier for maintenance if I can combine both in one).

Unfortunately Google wasn't very helpful and I don't have a huge amount of experience using JSON schemas, so apologies if I am missing something obvious.

Edit 1:
Example Schema Snippet:

{
    "title": "Example Schema",
    "type": "object",
    "properties": {
        "firstName": {
            "type": "string",
            "CUSTOM_PROPERTY": "CUSTOM_VALUE"
        }
    }
}

Note the above is just a snippet and hence doesn't have title, $schema etc.

like image 719
Anton v B Avatar asked Dec 07 '16 14:12

Anton v B


1 Answers

(if it's valid JSON) the validator most probably will ignore your custom properties. But what validator are you going to use ? Check it against that particular validator.

Here you have some online validators to test:

  • http://www.jsonschemavalidator.net/
  • https://json-schema-validator.herokuapp.com/
  • http://jsonschemalint.com/#/version/draft-05/markup/json

Also, you can extend JSON schema, see https://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.6.5

like image 86
Pedro Avatar answered Sep 21 '22 14:09

Pedro