C# 为包含不同数量地址的JSON文件创建JSON模式

C# 为包含不同数量地址的JSON文件创建JSON模式,c#,json,C#,Json,我得到了一个JSON文件,其中包含不同数量的地址。 现在我需要一个JSON模式来验证完整的JSON文件: 我的JSON文件与此类似: [ { "ID": "FIRST", "Name" : "FirstName", "ZIP" : "0815" }, { "ID": "SECOND", "Name" : "SecondName", "ZIP" : "4711" }, {

我得到了一个JSON文件,其中包含不同数量的地址。 现在我需要一个JSON模式来验证完整的JSON文件:

我的JSON文件与此类似:

[
   {
       "ID": "FIRST",
       "Name" : "FirstName",
       "ZIP" : "0815"
   },
   {
       "ID": "SECOND",
       "Name" : "SecondName",
       "ZIP" : "4711"
   },
   {
       "ID": "THIRD",
       "Name" : "ThirdName",
       "ZIP" : "123"
   }
]
这只是三个地址,但JSON文件可以包含更多地址。 模式看起来如何

我想使用模式生成器创建JSON模式

Thanx提前感谢您的帮助。

您可以使用库(可通过Nuget软件包访问)直接从Json生成模式。比如说,

 var schema = JsonSchema.FromSampleJson(json);
 var result = schema.ToJson();
样本输出

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "type": "array",
  "items": {
    "$ref": "#/definitions/Anonymous"
  },
  "definitions": {
    "Anonymous": {
      "type": "object",
      "properties": {
        "ID": {
          "type": "string"
        },
        "Name": {
          "type": "string"
        },
        "ZIP": {
          "type": "string"
        }
      }
    }
  }
}
使用。 您可以从对象生成模式

您的address类只是:

public class Address
{
    public string ID { get; set; }
    public string Name { get; set; }
    public string ZIP { get; set; }
}
转换为:

using Newtonsoft.Json;
using Newtonsoft.Json.Schema;


JsonSchemaGenerator generator = new JsonSchemaGenerator();
JsonSchema schema = generator.Generate(typeof(Address[]));

它看起来像一个简单的模式,没有太多的验证。键入具有3个属性ID/Name/Zip all字符串的地址项数组,这不是必需的。使用规范没有太多的工作要做。你评论说你想使用一个生成器,所以你可以,简单地在任何生成器中复制过去,然后从那里开始工作。嗨,拖放。我和你做的几乎一样,但是为了快速回答,我忘记了…typeof(Address[])Thanx中的[]-括号。