C# 为包含不同数量地址的JSON文件创建JSON模式
我得到了一个JSON文件,其中包含不同数量的地址。 现在我需要一个JSON模式来验证完整的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" }, {
[
{
"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中的[]-括号。