【发布时间】:2014-02-03 14:53:22
【问题描述】:
我正在从 C# 中的类动态生成 HTML 表单。我目前的方法是在服务器端使用 Json.NET 中包含的 JsonSchemaGenerator 从 C# 类生成 JSON Schema,然后在客户端从这个 JSON Schema 呈现表单。
我希望能够将 JSON Schema 属性(例如 title or description)添加到 C# 类的属性中,但找不到任何简单的方法让 JsonSchemaGenerator 将这些属性包含在生成的模式中。
我可以使用 C# 属性 JsonObjectAttribute、JsonArrayAttribute 或 JsonDictionaryAttribute 之一将这些 JSON Schema 属性添加到类本身,但使用属性的 JsonProperty 属性,我只能更改是否属性是否必填。
本质上,我想要的是生成这个 JSON Schema:
{
"type": "object",
"properties": {
"MyString": {
"type": "string",
"title": "Title for my string"
}
}
}
来自这个类:
class MyClass
{
public string MyString { get; set; }
}
我应该编写自定义JsonConverter 还是手动添加架构属性? Json.NET 不是适合这项工作的工具吗? JSON Schema 首先是错误的格式吗?还是我错过了 JsonSchemaGenerator 的一些奇特功能?
【问题讨论】:
-
您好,您是否找到了如何使用 Json.NET 执行此操作的解决方案?我还需要指定属性描述...
-
我修改了 Json.NET 来做我想做的事,但是这些更改并没有合并到主项目中。不过可以在这里找到它们:github.com/kimsey0/Newtonsoft.Json/commits/master
-
它被拒绝了,因为它包含多个功能。也许我们应该为每个功能创建一个分支?
-
是的,没错。我为工作制作了补丁,我们离开了 JsonSchemaGenerator,我还没有时间清理拉取请求。随意分叉该项目两次,应用我的补丁并为每个补丁提交一个拉取请求 - 我很高兴看到它们合并。
标签: c# json json.net jsonschema