Json Schema — ошибка синтаксического анализа в Json.NET

В настоящее время я сталкиваюсь с проблемой анализа моей схемы json с помощью Json.NET. Моя схема состоит из массива, элементы которого могут быть двух разных типов, как описано в примере ниже:

"Operations": {
        "type": "array",
        "id": "Operations",
        "required": true,
        "items": {
            "type": [
                {
                    "type": "object",
                    "properties": {
                        "Sale_ID": {
                            "type": "number",
                            "id": "Sale_ID",
                            "required": false
                        },
                  },
                    "additionalProperties": false
                },
                {
                    "type": "object",
                    "properties": {
                        "Purchase_ID": {
                            "type": "number",
                            "id": "Purchase_ID",
                            "required": false
                        },
                  },
                    "additionalProperties": false
                }

Эта схема была проверена несколькими валидаторами, всегда с успехом. Я пытаюсь разобрать его как JsonSchema:

JsonSchema js = JsonSchema.Parse(schemaAsString);

Однако я получаю JsonReaderException:

Строковый токен типа схемы JSON, полученный StartObject

Я предполагаю, что это происходит потому, что мой тип элемента не является строкой. Я хотел бы знать, можно ли определить нестроковые типы в Json.NET, или это известная проблема/ограничение.


person user2022465    schedule 29.01.2013    source источник


Ответы (1)


Json.NET не поддерживает сложные схемы в свойстве type.

Обновление:

Схема Json.NET теперь полностью поддерживает проекты 3 и 4, которые включает поддержку сложных схем в свойстве type.

person James Newton-King    schedule 29.01.2013
comment
Спасибо за ответ Джеймс. Будет ли он поддерживаться в будущих версиях? - person user2022465; 30.01.2013
comment
Нет, следующая версия спецификации схемы JSON заменит ее другим синтаксисом. Не знаю, когда я рассмотрю это. - person James Newton-King; 30.01.2013
comment
Привет, Джеймс. Я хотел бы знать, если это возможно, когда мы можем ожидать обновления JSON.NET для поддержки проекта V4. Заранее спасибо! - person user2022465; 14.03.2013
comment
Я работаю над черновиком версии 4 для чтения, генератора и валидатора, см. github.com/rsuter/NJsonSchema (его еще не закончен) - person Rico Suter; 23.12.2014