【发布时间】:2016-07-31 05:53:23
【问题描述】:
我有一堂课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": {...}
...
}
现在我使用来自NewtonSoft 的Json.NET 反序列化json,如下所示:
var alphabet = JsonConvert.DeserializeObject<Dictionary<char, Letter>>(jsonString);
所以我可以参考这样的值:alphabet["A"]
现在我要检查,是jsonString,我要反序列化是有效的。
我找到了一些如何从文件中读取JsonSchema 或如何在代码中生成它的示例。但我不知道如何为我的 json 文件示例生成 shema。
谁能帮帮我?
附言
现在我这样做。这是最好的方法吗?
...
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>))? -
@AlekseyL。请写下这个问题的答案,这样我就可以将其作为正确答案进行检查。我认为如果用户不仅用字母符号定义他的 json,那么第一个结论就更正确了
标签: c# json dictionary json.net jsonschema