【发布时间】:2014-10-15 08:23:21
【问题描述】:
我对一系列模型使用来自JSON.NET 的JsonSchemaGenerator,以将相应的 JSON 模式输出到如下所示的字典中。
JsonSchemaGenerator generator = new JsonSchemaGenerator()
{
UndefinedSchemaIdHandling = UndefinedSchemaIdHandling.UseTypeName,
};
List<Type> modelTypes = Assembly.GetExecutingAssembly()
.GetTypes()
.ToList()
.Where(t => t.Namespace == "MyApp.Models")
.ToList();
foreach (Type type in modelTypes)
{
JsonSchema schema = generator.Generate(type, jsonSchemaResolver, false);
schemaDictionary.Add(type, schema);
}
除了为required 属性设置的值之外,这可以正常工作。无论我如何修饰模型属性,字段总是显示为"required":true,如下所示:
"FirstName": {
"required": true,
"type": "string"
}
但是,在代码中,我的模型是这样装饰的:
[JsonProperty(Required = Required.Default)]
public string FirstName { get; set; }
查看 Json.Net documentation,设置为 Required.Default 应该会导致架构中不需要属性 :
“默认 - 0 - 该属性不需要。默认状态。”
知道我做错了什么并且需要更改以便FirstName 属性在架构中输出为"required": false?我确实不想要生成并手动按摩所有这些模式。
【问题讨论】:
标签: c# json json.net jsonschema