Подтвердить что ты не робот

Указать значение может быть строкой или нулевым значением с помощью 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-строчном примере.

4b9b3361

Ответ 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