Specify a value can be a string or null with JSON Schema
json, json.net, jsonschema
Solution
From https://json-schema.org/understanding-json-schema/reference/type.html
The `type` keyword may either be a string or an array:
- If it’s a string, it is the name of one of the basic types above.
- If it is an array, it must be an array of strings, where each string is the name of one of the basic types, and each element is unique. In this case, the JSON snippet is valid if it matches any of the given types
The same page lists also the defined data type names, including `string` and `null`.
Try:
"member_region": { "type": ["string", "null"] }
Problem
Hopefully this isn't obvious to others because I find the docs at https://json-schema.org/ to be lacking in finer details. I'm getting a block of JSON with some properties that can be `null` or a `string`. How do you specify, in a JSON Schema (to be parsed by Json.NET's `JsonSchema.Parse` method), that a value can be of type `null` or type `string`? Is there something simple I'm missing like supplying an array for the type? For example; ``` "member_region": { "type": [ "string", null ] } // this throws an exception ``` Also, does anyone have a better source for JSON Schema details than json-schema.org? Where can I find a larger selection of examples? I don't want to read a big document/specification to find something that can easily be demonstrated in a 10 line example.