Как мне сериализовать зависимости в JSchema с помощью newtonsoft - PullRequest
0 голосов
/ 09 мая 2019

С Newtonsoft.Json.Schema я пытаюсь добавить зависимости и сериализовать в json-схему (файл .json).

var schema = new JSchema()
{
    Type = JSchemaType.Object,
    SchemaVersion = new Uri("http://json-schema.org/draft-07/schema#")
};

schema.Properties.Add("ShowField", new JSchema() { Type = JSchemaType.Boolean });

var oneOf1 = new JSchema();
oneOf1.Properties.Add("ShowField", new JSchema() {Enum = { false }});

var oneOf2 = new JSchema();
oneOf2.Properties.Add("ShowField", new JSchema() { Enum = { true } });
oneOf2.Properties.Add("ExtraField", new JSchema() { Type = JSchemaType.String });

var oneOf = new JSchema();
oneOf.OneOf.Add(oneOf1);
oneOf.OneOf.Add(oneOf2);

schema.Dependencies.Add("ShowField", oneOf);

Console.WriteLine(schema.ToString());

Мой ожидаемый и ожидаемый результат такой:

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
        "ShowField": {
            "type": "boolean"
        }
    },
    "dependencies": {
        "ShowField": {
            "oneOf": [
                {
                    "properties": {
                        "ShowField": {
                            "enum": [false]
                        }
                    }
                },
                {
                    "properties": {
                        "ShowField": {
                            "enum": [true]
                        },
                        "ExtraField": {
                            "type": "string"
                        }
                    }
                }
            ]
        }
    }
}

Но когда я запускаю код, результат таков:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "ShowField": {
      "type": "boolean"
    }
  }
}

Я проверил объект JSchema и убедился, что зависимость добавлена ​​к объекту, но все еще нет сериализациизависимости.

Есть советы?Есть ошибки в коде?

1 Ответ

0 голосов
/ 16 мая 2019

Это проблема с Newtonsof.Json.Schema.Теперь это было исправлено: https://github.com/JamesNK/Newtonsoft.Json.Schema/issues/187

...