这是有效YAML?(Is this valid YAML?)

2019-08-18 06:52发布

因此,在C#我的文本解析的问题 ,我在YAML得到了导演。 我打这个图书馆,我推荐一个墙,所以这是一个匆匆。

heading:
 name: A name
 taco: Yes
 age: 32

heading:
 name: Another name
 taco: No
 age: 27

等等。 是不是有效?

Answer 1:

部分。 YAML支持多个连续的“文件”的概念。 如果这是你正在尝试做的,那么是的,这是正确的 - 你有两个文件(或文档片段)。 为了使它更加明确,你应该有三个破折号,这样它们分开:

---
heading:
 name: A name
 taco: Yes
 age: 32
---
heading:
 name: Another name
 taco: No
 age: 27

在另一方面,如果你想使它们在同一个文档的一部分(以便他们反序列化会导致有两个元素的列表),你应该把它写像下面这样。 要格外小心与缩进级别:

- heading:
  name: A name
  taco: Yes
  age: 32
- heading:
  name: Another name
  taco: No
  age: 27

一般来说YAML简洁和人类可读/可编辑的,但不是真正的人写的,所以你应该总是使用库生成它。 此外,要小心,存在不同版本的YAML的,可如果你使用的库中符合不同版本的标准的不同语言咬你之间有一些重大的变化。



Answer 2:

哦,看来YAML走了窗外的话。 我想要的东西,人类读写。 另外,这C#实现......我不知道,如果它的工作与否,文档包括几个一行代码示例。 它barfs自己的YAML文件,是一个古老的学生项目。 唯一的其他C#YAML解析器,我发现使用MS-PL,我真的不舒服使用。

我可能就这样结束了我自己的滚动格式。 最佳做法是该死的,我想要做的是一个价值的关键关联。



Answer 3:

试试这个(在线YAML解析器) 。

你不必下载任何东西,或做一些事情。 刚去那里,复制和粘贴。 而已。



Answer 4:

似乎有被称为YAML验证Kwalify这应该给你答案。 你早刚刚经历与字符串标记化,人。 写解析器的乐趣:)



Answer 5:

还有另一个YAML库.NET其正在开发中。 现在,它支持读取YAML流。 它已经在Windows和Mono测试。 写支持,目前正在实施。



Answer 6:

CodeProject上有一个在:

http://www.codeproject.com/KB/recipes/yamlparser.aspx

我还没有尝试过太多,但它是值得一试。



Answer 7:

你可以在网上看到YAML解析器的输出:

http://yaml-online-parser.appspot.com/?yaml=heading%3A%0D%0A+name%3A+A+name%0D%0A+taco%3A+Yes%0D%0A+age%3A + 32%0D%0A%0D%0Aheading%3A%0D%0A +名称%3A +另一个+名称%0D%0A +玉米面豆卷%3A +未%0D%0A +年龄%3A + 27%0D%0A&类型= JSON

正如你所看到的,只有一个标题创建节点。



Answer 8:

只是为了这件事一个明确的意见:你有一个重复的映射关键问题。 一个YAML处理器将解决这个作为一个!!地图,禁止重复键。 并非所有处理器执行这个约束,虽然如此,如果你传递一个不正确的YAML流处理器,你可能会得到不正确的结果。



文章来源: Is this valid YAML?