【问题标题】:Creating Non-Nullable Array Types With JSchemaGenerator使用 JSchemaGenerator 创建不可为空的数组类型
【发布时间】:2015-04-20 06:08:27
【问题描述】:

我正在使用 Newtonsoft.Json.schema v1.0.6,我正在尝试为具有类似于此的数组属性的自定义类型生成 JSchema

public class MyClass {
    public List<MyChild> Children { get; set; }
}
public class MyChild {
    public string MyProperty { get; set; }
}

默认的JSchemaGenerator 会生成一个类似这样的JSchema

{
    "type": "object",
    "properties": {
        "MyChildren": {
            "type": "array",
            "items": {
                "type": [
                    "object",
                    "null"
                ],
                ...
            }
        }
    },
    ...
}

我不想接受 MyChildren 数组中的空项。我尝试添加[JsonProperty(Required = Required.Always)] 属性,但它只是使MyChildren 属性本身成为必需,我无法将该属性添加到MyChild 类。

我想我将不得不实现一个自定义 JSchemaGenerationProvider,但 JSchema.Items 属性是只读的。

如何为具有不应接受空值的数组属性的对象生成 JSON 架构?

【问题讨论】:

    标签: c# json c#-4.0 json.net jsonschema


    【解决方案1】:

    JSchema.Items 是只读的,但可以修改其中的架构。只需将其类型设置为JSchemaType.String

    【讨论】:

      猜你喜欢
      • 2011-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-11
      • 1970-01-01
      • 2010-10-10
      • 2014-01-15
      • 1970-01-01
      相关资源
      最近更新 更多