是否有任何简化的 YAML 格式变得普遍?
Have any simplified YAML formats become widespread?
我喜欢 YAML。
等等,让我备份。我喜欢这样的 YAML,甚至超过 JSON:
Projects:
C/C++ Libraries:
- libyaml # "C" Fast YAML 1.1
- Syck # (dated) "C" YAML 1.0
- yaml-cpp # C++ YAML 1.2 implementation
Ruby:
- psych # libyaml wrapper (in Ruby core for 1.9.2)
- RbYaml # YAML 1.1 (PyYaml Port)
- yaml4r # YAML 1.0, standard library syck binding
...
我也喜欢 YAML 锚点和引用,有时希望 JSON 拥有它们。
但我希望我们中的大多数人都同意以下内容不是那么可读(我知道这个例子是说教的,但关键是因为它 是有效的 YAML,人们您与之合作可能会使用此类功能污染您的数据):
!!map {
? !!str "sequence"
: !!seq [ !!str "one", !!str "two" ],
? !!str "mapping"
: !!map {
? !!str "sky" : !!str "blue",
? !!str "sea" : !!str "green",
},
}
所以我很失望,我找不到任何广泛的妙招来标准化 YAML 的简化子集,至少通过粗略的 Google 搜索是这样。
有人知道吗?
这样的子集有很多。几乎每个 YAML 库都通过往返(将 YAML 加载到内部数据并将数据序列化回 YAML)产生的格式隐式定义一个。
您通常可以影响这些子集,但它们往往具有有用的默认值,其中块结构适用于较大的集合,流式样式适用于较小的集合(每个都根据库开发人员认为可读性)。
IMO 处理流氓编辑器的方法是通过 ruamel.yaml 解析器附带的 yaml
实用程序(我是作者)往返代码,然后使用它.如果您不喜欢它强加给您的子集,通过试验更改其序列化程序设置应该相对容易。在修订控制系统中 storing/updating 任何 YAML 文件之前,这样的 "normalisation" 是 IMO 必须的。
我喜欢 YAML。
等等,让我备份。我喜欢这样的 YAML,甚至超过 JSON:
Projects:
C/C++ Libraries:
- libyaml # "C" Fast YAML 1.1
- Syck # (dated) "C" YAML 1.0
- yaml-cpp # C++ YAML 1.2 implementation
Ruby:
- psych # libyaml wrapper (in Ruby core for 1.9.2)
- RbYaml # YAML 1.1 (PyYaml Port)
- yaml4r # YAML 1.0, standard library syck binding
...
我也喜欢 YAML 锚点和引用,有时希望 JSON 拥有它们。
但我希望我们中的大多数人都同意以下内容不是那么可读(我知道这个例子是说教的,但关键是因为它 是有效的 YAML,人们您与之合作可能会使用此类功能污染您的数据):
!!map {
? !!str "sequence"
: !!seq [ !!str "one", !!str "two" ],
? !!str "mapping"
: !!map {
? !!str "sky" : !!str "blue",
? !!str "sea" : !!str "green",
},
}
所以我很失望,我找不到任何广泛的妙招来标准化 YAML 的简化子集,至少通过粗略的 Google 搜索是这样。
有人知道吗?
这样的子集有很多。几乎每个 YAML 库都通过往返(将 YAML 加载到内部数据并将数据序列化回 YAML)产生的格式隐式定义一个。
您通常可以影响这些子集,但它们往往具有有用的默认值,其中块结构适用于较大的集合,流式样式适用于较小的集合(每个都根据库开发人员认为可读性)。
IMO 处理流氓编辑器的方法是通过 ruamel.yaml 解析器附带的 yaml
实用程序(我是作者)往返代码,然后使用它.如果您不喜欢它强加给您的子集,通过试验更改其序列化程序设置应该相对容易。在修订控制系统中 storing/updating 任何 YAML 文件之前,这样的 "normalisation" 是 IMO 必须的。