如何使用 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
使用 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