从C#类生成JSON模式

Rav*_*pta 27 c# json jsonschema

有没有办法以编程方式从C#类生成JSON模式?

我们可以使用http://www.jsonschema.net/手动完成的事情

Ric*_*ter 19

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

var schema = JsonSchema4.FromType<Person>();
var schemaJson = schema.ToJson();
Run Code Online (Sandbox Code Playgroud)

该库可以通过NuGet安装.

NJsonSchema v9.4.3 +更新:

using NJsonSchema;

var schema = await JsonSchema4.FromTypeAsync<Person>();
var schemaJson = schema.ToJson();
Run Code Online (Sandbox Code Playgroud)


mar*_*iro 8

Json.NET中通过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" ]
//}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,使用 newtonsoft json 模式包时,许可可能是一个问题 (2认同)