【发布时间】:2015-06-17 14:23:52
【问题描述】:
我正在使用 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,我该怎么办?
【问题讨论】:
-
这些都是有效的 YAML 文件(除了最后一个中的额外缩进空间,我将其作为错字删除)。
标签: c# yaml yamldotnet