C# JsonSchemaGenerator字符串自定义契约解析程序

C# JsonSchemaGenerator字符串自定义契约解析程序,c#,json,json.net,jsonschema,C#,Json,Json.net,Jsonschema,我想从自定义对象创建一个模式。自定义对象有一些字符串属性,这些属性被模式化,类型为string | Null。如何修改JSonSchemaGenerator以将字符串转换为类型String,而不是String | Null? 换句话说,如果我序列化Jsonschema,我不希望这样: { "title":"myObject", "type":"object", "properties":{ "ID":{ "required":true, "type":

我想从自定义对象创建一个模式。自定义对象有一些字符串属性,这些属性被模式化,类型为
string | Null
。如何修改
JSonSchemaGenerator
以将字符串转换为类型
String
,而不是
String | Null
? 换句话说,如果我序列化Jsonschema,我不希望这样:

{
  "title":"myObject",
  "type":"object",
  "properties":{
    "ID":{
      "required":true,
      "type":["string","null"]
    }
  }
}
但这是:

{
  "title":"myObject",
  "type":"object",
  "properties":{
    "ID":{
      "required":true,
      "type":"string"
    }
  }
}
你可以做:

[JsonProperty(Required = Required.Always)]
public string ID {get;set;}

默认情况下,所有字符串都可以为空。当然,不可为空的字符串在C中不存在,但我们讨论的是json模式,而不是C。在jsonSchema中,您不必使用以下内容:
“color”:{“required”:true,“type”:[“string”,“null”]}
,您可以使用此
“color”:{“required”:true,“type”:“string”},
您解决了这个问题吗?