在配置文件中,我有一个我希望分配URL的密钥。问题是YAML将:和 - 字符解释为创建映射或列表,因此它存在行问题
url: http://www.example-site.com/
(两者都是因为http后面的冒号和中间的连字符)
是否有明确的方式来逃避':'和' - '?或者它是否可以将整个事物放在单引号中并称之为一天?
答案 0 :(得分:175)
行情:
"url: http://www.example-site.com/"
澄清一下,我的意思是“引用价值”,最初认为整个事情就是价值。如果http://www.example-site.com/
是值,则只需引用它:
url: "http://www.example-site.com/"
答案 1 :(得分:152)
对于长的多行文本来说,什么也有效,甚至更好,是将文本缩进到下一行,在管道或大于号后面:
text: >
Op dit plein stond het hoofdkantoor van de NIROM: Nederlands Indische
Radio Omroep
管道保留换行符,gt符号将以下所有行转换为一个长字符串。
答案 2 :(得分:31)
根据YAML规范,:
和-
都不应成为问题。 :
只是一个后面有空格的键分隔符,而-
只是一行后面的数组指示符,后面有一个空格。
但是如果你的YAML实现有问题,你可能有很多选择:
- url: 'http://www.example-site.com/'
- url: "http://www.example-site.com/"
- url:
http://www.example-site.com/
- url: >-
http://www.example-site.com/
- url: |-
http://www.example-site.com/
然而,“plain style”中明确没有任何形式的转义。
答案 3 :(得分:29)
引用,但我更喜欢它们的价值:
url: "http://www.example.com/"
将它们放在整条线上看起来可能会导致问题。
答案 4 :(得分:18)
使用Jekyll中使用的YAML解析器的另一种方法:
title: My Life: A Memoir
另一方面,没有空格的冒号似乎不会打扰Jekyll的YAML解析器。破折号也没有。
答案 5 :(得分:2)
如果您在Spring Boot 2上使用@ConfigurationProperties
来插入带有冒号的键的映射,那么您需要在引号内使用方括号进行额外的转义,因为spring只允许使用字母数字和'-'字符,除去其余部分。您的新密钥如下所示:
"[8.11.32.120:8000]": GoogleMapsKeyforThisDomain
请参阅this github问题以供参考。
答案 6 :(得分:0)
我来这里是为了使我的Azure DevOps命令行任务正常运行。对我有用的是使用竖线(|
)字符。使用>
无效。
示例:
steps:
- task: CmdLine@2
inputs:
script: |
echo "Selecting Mono version..."
/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_18_1"
echo "Selecting Xcode version..."
/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_10.2.1.app;sudo xcode-select --switch /Applications/Xcode_10.2.1.app/Contents/Developer"