我想将YAML文档转换为对象图using YamlDotNet deserializer。以下是yhe YAML文件的示例。
desks:
- A5
- A6
- A7
- A8
- ...
employees:
- E00
- E10
- E20
- ...
schedule:
0:
E00: A0
E10: A1
E100: A10
E20: A2
E30: A3
E40: A4
E50: A5
E60: B0
E70: F3
E80: A8
E90: A9
1:
E00: A0
E10: A1
E100: A10
E20: A2
E30: A3
E40: A4
E50: A5
E60: B0
E70: F3
E80: A8
E90: A9
...
按照我之前链接的指南,我创建了一个 Scheduler ,封装了要投射的YAML文档的所有节点
var deserializer = new DeserializerBuilder()
.WithNamingConvention(CamelCaseNamingConvention.Instance)
.Build();
var order = deserializer.Deserialize<Scheduler>(input);
public class Scheduler
{
public List<string> desks { get; set; }
public List<string> employees { get; set; }
}
但是,我不知道如何表示schedule
节点,它是一个可变长度的嵌套字典。
我可以在C#中使用哪种数据结构来表示这样的YAML结构?
答案 0 :(得分:2)
我已经开始工作了,但是我想知道是否有更好的方法。我对JSON反序列化有丰富的经验,但是没有太多的YAML反序列化经验。
public class Scheduler
{
public List<string> desks { get; set; }
public List<string> employees { get; set; }
public IDictionary<int, IDictionary<string,string>> schedule { get; set; }
}