使用JSON.NET JSON.NET JSONSCHEMAGENERATOR添加JSON模式属性(标题,描述)



我正在努力从C#中的类动态生成HTML表单。我当前的方法是使用服务器端的JSON.NET中包含的JSONSCHEMAGENERATOR从C#类生成JSON模式,然后在客户端的此JSON模式中呈现表单。

我希望能够将JSON模式属性(例如标题或描述)添加到C#类的属性,但找不到任何简单的方法来获取JsonschemageNerator将其包含在生成的架构中。

i可以使用C#属性之一jsonobjectAttribute,jsonarrayAttribute或jSondictionaryAttribute将这些JSON模式属性添加到类本身中,但是使用jsonproperty属性,我只能更改该属性是否需要。p>本质上,我想要的是生成此JSON模式:

{
    "type": "object",
    "properties": {
        "MyString": {
            "type": "string",
            "title": "Title for my string"
        }
    }
}

来自此类:

class MyClass
{
    public string MyString { get; set; }
}

我应该编写自定义jsonConverter还是手动添加架构属性?JSON.NET不是工作的正确工具吗?JSON模式首先是错误的格式吗?还是我错过了Jsonschemagenerator的一些精美功能?

JsonSchemaGenerator考虑类型的所有对象具有相同的架构(从一般意义上讲"类型",而不是Type类)。它并非旨在支持属性的单个模式。它考虑了类型的TitleDescription属性,而不是属性的属性(这就是为什么它仅查找JsonContainerAttribute及其后代的原因)。因此,即使您设法将JsonConverter用作解决方法(生成"类型"),它本质上也将是黑客。

如果我正确理解,那么JSON.NET处理TitleDescription的方式是错误的。我建议提交功能请求/错误报告。

P.S。我只是看了代码,我不确定。

相关内容

  • 没有找到相关文章

最新更新