我正在使用 yamldotnet 和 c# 反序列化由第三方软件应用程序创建的文件。以下 YAML 文件示例在应用程序中均有效:
#File1
Groups:
- Name: ATeam
FirstName, LastName, Age, Height:
- [Joe, Soap, 21, 184]
- [Mary, Ryan, 20, 169]
- [Alex, Dole, 24, 174]
#File2
Groups:
- Name: ATeam
FirstName, LastName, Height:
- [Joe, Soap, 184]
- [Mary, Ryan, 169]
- [Alex, Dole, 174]
请注意,File2 没有任何 Age 列,但反序列化器仍必须识别每行上的第三个值是高度而不是年龄。这个数据应该代表一张人的桌子。以 File1 为例,Mary Ryan 20 岁,身高 169 厘米。反序列化器需要了解它拥有的列(对于 File2,它只有 FirstName、LastName 和 Height)并将数据相应地存储在正确的对象中:Mary Ryan 身高 169 厘米。
同样,程序文档指出列的顺序并不重要,因此下面的 File3 是一种同样有效的方式来表示 File2 中的数据,即使现在首先是高度:
#File3
Groups:
- Name: ATeam
Height, FirstName, LastName:
- [184, Joe, Soap]
- [169, Mary, Ryan]
- [174, Alex, Dole]
我有几个问题:
- 这是标准的 YAML 吗?- 我找不到任何关于在同一行上使用多个键后跟冒号和值列表来表示数据表的任何信息。
- 我将如何使用 yamldotnet 反序列化它?我可以做些修改来帮助它吗?
- 如果我不能使用 yamldotnet,我该怎么办?