从c#类生成JSON模式

本文关键字:JSON 模式 | 更新日期: 2023-09-27 18:07:15

是否有任何方法以编程方式从c#类生成JSON模式?

我们可以手动使用http://www.jsonschema.net/

从c#类生成JSON模式

另一个支持生成JSON Schema v4的选项是NJsonSchema:

var schema = JsonSchema.FromType<Person>();
var schemaJson = schema.ToJson();

库可以通过NuGet安装。

更新NJsonSchema v9.4.3 +:

using NJsonSchema;
var schema = await JsonSchema.FromTypeAsync<Person>();
var schemaJson = schema.ToJson();

Json中支持。通过Newtonsoft.Json.Schema NuGet包。关于如何使用它的说明可以在官方文档中找到,但我也在下面提供了一个简单的示例。

JSchemaGenerator generator = new JSchemaGenerator();
JSchema schema = generator.Generate(typeof(Person));
Console.WriteLine(schema.ToString());
//{
//  "type": "object",
//  "properties": {
//    "Name": {
//      "type": [ "string", "null" ]
//    },
//    "Age": { "type": "integer" }
//  },
//  "required": [ "Name", "Age" ]
//}
JsonSchemaGenerator js = new JsonSchemaGenerator();
var schema = js.Generate(typeof(Person));
schema.Title = typeof(Person).Name;
using (StreamWriter fileWriter = File.CreateText(filePath))
{
      fileWriter.WriteLine(schema);
}

对于那些从谷歌搜索反向
(从JSON生成c#类)的人来说,我使用这些很好的在线工具:

JSON:


http://json2csharp.com/
(来源:http://jsonclassgenerator.codeplex.com/)

XML:
http://xmltocsharp.azurewebsites.net/
(来源:https://github.com/msyoung/XmlToCSharp)