如何使用 newtonsoft 序列化 JSchema 中的依赖项

How do I serialize dependencies in JSchema with newtonsoft

使用 Newtonsoft.Json.Schema 我正在尝试添加依赖项并序列化到 json-schema(.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对象,确认对象中添加了依赖,但仍然没有序列化依赖。

有什么建议吗?代码有错误吗?

这是 Newtonsof.Json.Schema 的一个问题。现在已经修复: https://github.com/JamesNK/Newtonsoft.Json.Schema/issues/187