YAML举例说明
我正在尝试为我的应用程序设计配置文件格式,并选择了YAML。然而,这(显然)意味着我需要能够定义、解析和验证正确的YAML语法 在配置文件中,必须有一个名为YAML举例说明,yaml,Yaml,我正在尝试为我的应用程序设计配置文件格式,并选择了YAML。然而,这(显然)意味着我需要能够定义、解析和验证正确的YAML语法 在配置文件中,必须有一个名为widgets的集合/序列。此序列需要包含一组类型化小部件(可能的类型有fizz、buzz和foobaz)。每个小部件还具有名称和各种其他属性(取决于类型)。例如: myappconfig.yaml ================ widgets: - buzz: name: Red Buzz isSilly:
widgets
的集合/序列。此序列需要包含一组类型化小部件(可能的类型有fizz
、buzz
和foobaz
)。每个小部件还具有名称
和各种其他属性(取决于类型)。例如:
myappconfig.yaml
================
widgets:
- buzz:
name: Red Buzz
isSilly: true
- buzz:
name: Blue Buzz
isSilly: false
- foobaz:
name: Abracadabra
rating: 3000
specialty: Such YAML much amaze
我的简单问题是:我是否在上面创建了正确/有效的YAML文件?也就是说,根据我的约束条件,我在实现中是否正确理解了YAML语法?您可以检查YAML的语法,例如 您的YAML解析如下:
{'widgets': [{'buzz': {'name': 'Red Buzz', 'isSilly': True}}, {'buzz': {'name': 'Blue Buzz', 'isSilly': False}}, {'foobaz': {'rating': 3000, 'name': 'Abracadabra', 'specialty': 'Such YAML much amaze'}}]}
它看起来像您想要的东西。如果小部件名称应该是唯一的,您可以将其用于键:
widgets:
RedBuzz:
type: buzz
isSilly: true
BlueBuzz:
type: buzz
isSilly: false
Abracadabra:
type: foobaz
rating: 3000
specialty: Such YAML much amaze
这一个使用按小部件类型分组:
widgets:
buzz:
- RedBuzz:
isSilly: true
- Blue Buzz:
isSilly: false
foobaz:
- Abracadabra:
rating: 3000
specialty: Such YAML much amaze
此外,如果你觉得自己很无聊,你可以使用小部件类型合并如下:
buzz_widget: &buzz_widget
type: buzz
foobaz_widget: &foobaz_widget
type: foobaz
widgets:
RedBuzz:
isSilly: true
<<: *buzz_widget
BlueBuzz:
isSilly: false
<<: *buzz_widget
Abracadabra:
rating: 3000
specialty: Such YAML much amaze
<<: *foobaz_widget
buzz\u小部件:&buzz\u小部件
类型:嗡嗡声
foobaz_小部件:&foobaz_小部件
类型:foobaz
小部件:
雷德巴斯:
伊西利:是的
我不确定你的第二个例子是否符合你的意图。例如,第三行和第四行用两个键描述映射:RedBuzz
,其值为null
,以及isSilly
,其值为true
。我想您可能打算将isSilly
缩进得比RedBuzz
更多,这样第三行和第四行将描述一个带有一个键的映射,RedBuzz
,其值是一个带有一个键的映射,isSilly
。也许我误解了你的意图。是的,你完全正确,我错过了意图!谢谢你!