Json.NET为字典创建模式

时间:2016-07-31 05:53:24

标签: c# json dictionary json.net jsonschema

我有一个班级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.NET的{​​{1}}反序列化json,如下所示:

NewtonSoft

所以我可以参考这样的值:var alphabet = JsonConvert.DeserializeObject<Dictionary<char, Letter>>(jsonString);

现在我要检查,alphabet["A"],我要反序列化是有效的。

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

任何人都可以帮助我吗?

P.S。

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

JsonSchema

1 个答案:

答案 0 :(得分:3)

您可以根据要反序列化的类型生成架构。例如:

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