代码之家  ›  专栏  ›  技术社区  ›  Bernard

这是有效的YAML吗?

  •  3
  • Bernard  · 技术社区  · 16 年前

    所以对于我的C语言文本分析# question ,我被指向亚姆。我被推荐的这个图书馆撞到墙上了,所以这是一个快速的方法。

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

    等等。有效吗?

    8 回复  |  直到 5 年前
        1
  •  11
  •   Grey Panther    16 年前

    部分地。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的不同版本之间存在一些突破性的变化,如果您使用的是符合不同版本标准的不同语言的库,那么这些变化可能会对您不利。

        2
  •  4
  •   Bernard    16 年前

    嗯,看来亚姆已经从窗户出去了。我想要既能写又能写的东西 可读。另外,这个C#实现…我不知道 如果 不管它是否工作,文档由几个单行代码示例组成。它吐在自己的YAML文件上,是一个老学生项目。我发现的另一个C#YAML解析器使用的是MS-PL,我不太习惯使用它。

    我可能会以自己的方式结束。最好的实践是该死的,我想做的就是把一个键和一个值联系起来。

        3
  •  4
  •   SeniorLee    13 年前

    尝试 this(Online YAML parser) .

    你不需要下载任何东西或做一些事情。只要去那里,复制和粘贴。就这样。

        4
  •  3
  •   eplawless    16 年前

    似乎有一个名为 Kwalify 这应该会给你答案。你应该带着弦去标记,伙计。编写解析器很有趣:)

        5
  •  2
  •   Antoine Aubry    16 年前

    another YAML library for .NET 正在开发中。现在它支持读取YAML流。它已经在Windows和Mono上进行了测试。目前正在实施写支持。

        6
  •  2
  •   Jeff Lorenzini Jeff Lorenzini    16 年前

    CodeProject在以下位置有一个:

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

    我没试太多,但值得一看。

        8
  •  0
  •   MrBackend    11 年前

    只是对它做一个明确的评论:您有一个重复的映射键问题。一个YAML处理器将解决这个问题!!地图,它禁止重复键。但是,并不是所有的处理器都强制执行此约束,因此如果将不正确的YAML流传递给处理器,则可能会得到不正确的结果。