当每个对象的根节点使用其 ID 命名时,使用 YamlDotNet 反序列化 YAML?

4 c# yaml yamldotnet

我正在使用 C#,并且有一个想要反序列化的 YAML 文件。

我看过使用 YamlDotNet,它看起来相当不错,但我找不到如何处理这种情况。

我正在使用的 YAML 文本具有以下格式:

1:
    id: 1
    name: foo
2:
    id: 2
    name: foo
Run Code Online (Sandbox Code Playgroud)

我希望它看起来像这样,但事实并非如此:

- id: 1
  name: foo
- id: 2
  name: foo
Run Code Online (Sandbox Code Playgroud)

当然,我可以通过循环每个节点并手动创建数据对象实例来恢复为更手动地完成所有操作,但似乎仍然应该有一种方法可以在处理这种烦人的数据结构时轻松使用 YamlDotNet。

我愿意接受有关 .NET 中其他 YAML 解析库的建议。

小智 7

我在另一个 SO 问题中找到了答案:寻求指导阅读 .yaml 文件与 C#

通过反序列化,Dictionary<int, Item>我可以成功处理这个数据结构。

deserializer.Deserialize<Dictionary<int, Item>>(textReader);
Run Code Online (Sandbox Code Playgroud)