Json.NET 为字典创建架构

Json.NET create schema for dictionary

我有一个 class Letter :

public class Letter
{
    public string p1 {get; set;}
    public string p2 {get; set;}
    public List<string> l1 {get; set;}
    public List<string> l2 {get; set;}
}

我有 json 个文件:

{
    "A": 
    {
        "p1": "",
        "p2": "",
        "l1": ["", "", ..., ""],
        "l2": ["", "", ..., ""]
    }
    "B": {...}
    ...
}

现在我用 Json.NETNewtonSoft 反序列化 json 像这样:

var alphabet = JsonConvert.DeserializeObject<Dictionary<char, Letter>>(jsonString);

所以我可以参考这样的值:alphabet["A"]

现在我想检查一下,我想反序列化的 jsonString 是否有效。

我找到了一些示例如何从文件中读取 JsonSchema,或者如何在代码中生成它。但是我找不到如何为我的 json 文件示例生成 shema。

谁能帮帮我?

P.S.

现在我是这样做的。这是最好的方法吗?

...
var schemaGenerator = new JSchemaGenerator();
var schemaForLetter = schemaGenerator.Generate(typeof (Letter));
var schema = new JSchema
{
    Type = JSchemaType.Object,
    Properties =
    {
        { "A", schemaForLetter },
        { "B", schemaForLetter },
        ...
    }
}
...

您可以从反序列化到的类型生成架构。例如:

var schema = generator.Generate(typeof(Dictionary<string, Letter>))