Указать значение может быть строкой или нулевым значением с помощью json-схемы
Надеюсь, это не очевидно для других, потому что я обнаружил, что документы http://json-schema.org/ не имеют более тонких деталей. Я получаю блок json с некоторыми свойствами, которые могут быть нулевыми или строковыми. Как вы определяете, в json-схеме (для анализа методом json.NET JsonSchema.Parse
), что значение может иметь тип null или строку типа?
Есть ли что-то простое, что я теряю, например, поставляя массив для типа? Например:
"member_region": { "type": [ "string", null ] } // this throws an exception
Кроме того, есть ли у кого-нибудь лучший источник для деталей схемы json, а затем json-schema.org? Где я могу найти более широкий выбор примеров? Я не хочу читать большой документ/спецификацию, чтобы найти что-то, что можно легко продемонстрировать в 10-строчном примере.
Ответы
Ответ 1
С http://json-schema.org/latest/json-schema-validation.html#anchor79
Значение этого ключевого слова ДОЛЖНО быть либо строкой, либо массивом. Если это массив, элементы массива ДОЛЖНЫ быть строками и ДОЛЖНЫ быть уникальными.
Строковые значения ДОЛЖНЫ быть одним из семи примитивных типов, определенных основной спецификацией.
Затем мы ссылаемся на типы: http://json-schema.org/latest/json-schema-core.html#anchor8
В нем перечислены строки и ноль. Пытаться:
"member_region": { "type": "string, null" }
Ответ 2
Расширение на Explosion Pills ответит, если вы выберете синтаксис массива:
"member_region": { "type": [ "string", "null" ] } // this works
потому что вы указываете тип, а не пример, вы не должны использовать:
"member_region": { "type": [ "string", null ] } // this throws an exception