让我们看看以下YAML定义:
#yaml
---
user1:
name: "User name"
age: "adf"
address:
street: "some street"
no: "23"
postcode: "2341234"
user2: {name: "User name", age: "adf", address: { street: "some street", no: "23", postcode: "2341234"}}
user1 和 user2 定义完全相同。 我有时更喜欢user2风格,但是当定义变得太长时,将所有内容放在一行中就会出现问题。
有没有办法在多线级别上混合使用JSON样式? 类似的东西:
user3: {name: "User name", age: "adf",
address: { street: "some street", no: "23", postcode: "2341234"}
}
答案 0 :(得分:1)
实际上,你可以做到这一点,不过我相信这条线应该格式正确。 这取决于您使用的解析器/编程语言以及它的规则是否严格或灵活。
根据YAML flow styles,YAML flow mappings和YAML docs, Example 2.6. Mapping of Mappings:
Mark McGwire: {hr: 65, avg: 0.278}
Sammy Sosa: {
hr: 63,
avg: 0.288
}
为了验证我可能我只是把这个YAML(我把这个代码没有正确格式化,以确保绝对):
---
user1:
name: "User name"
age: "adf"
address:
street: "some street"
no: "23"
postcode: "2341234"
user2: {name: "User name", age: "adf", address: { street: "some street", no: "23", postcode: "2341234"}}
user3: {name: "User name", age: "adf",
address: { street: "some street", no: "23", postcode: "2341234"}
}
...到几个在线YAML验证器。
其中一些验证成功:
下一个没有:
Ruby语言(我没有通过Perl检查过,可能是其中一些在线验证器为我做了这个)允许这种表示法。请记住,您的编程语言/解析器可能对语法敏感,因此此代码将是错误的。
就个人而言,我不会混淆不同的风格。我想到的最好的方法是将一些行转换为 flow 样式,其中一些行转换为 plain :
user3:
name: "User name",
age: "adf",
address: { street: "some street", no: "23", postcode: "2341234" }