从c#类生成JSON模式
本文关键字:JSON 模式 | 更新日期: 2023-09-27 18:07:15
是否有任何方法以编程方式从c#类生成JSON模式?
我们可以手动使用http://www.jsonschema.net/
另一个支持生成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#类)的人来说,我使用这些很好的在线工具:
http://json2csharp.com/
(来源:http://jsonclassgenerator.codeplex.com/)
XML:
http://xmltocsharp.azurewebsites.net/
(来源:https://github.com/msyoung/XmlToCSharp)