在YAML中,我有一个非常长的字符串.我想将它保留在我的编辑器的80列(或左右)视图中,所以我想打破字符串.这是什么语法?
换句话说,我有这个:
Key: 'this is my very very very very very very long string'
Run Code Online (Sandbox Code Playgroud)
我想要这个(或者这个效果):
Key: 'this is my very very very ' +
'long string'
Run Code Online (Sandbox Code Playgroud)
我想使用上面的引号,所以我不需要在字符串中转义任何东西.
在配置文件中,我有一个我希望分配URL的密钥.问题是YAML解释:和 - 字符作为创建映射或列表,所以它有一个问题的线
url: http://www.example-site.com/
Run Code Online (Sandbox Code Playgroud)
(因为http后跟冒号和中间的连字符)
是否有明确的方法来逃避':'和' - '?或者它是否可以将整个事物放在单引号中并称之为一天?
我mongod.exe使用此选项在服务器中运行cmd.exe:
mongod.exe --dbpath=path --auth
Run Code Online (Sandbox Code Playgroud)
现在,我如何在配置文件中执行此操作?
我的mongod.cfg:
dbpath=D:\Program Files\MongoDB 2.6 Standard\data
security=
authorization= enabled
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
解析INI配置文件时出错:未知选项安全性.
我正在使用YamlDotNet库,我在加载YAML文件时遇到此错误:
解析标记时,未找到预期的标记URI.
YAML文件应该是格式良好的,因为它来自RoR.该错误似乎是由以下代码触发的:
formats:
default: ! '%d-%m-%Y'
long: ! '%d %B, %Y'
short: ! '%d %b'
Run Code Online (Sandbox Code Playgroud)
我不是专家,但我从YAML规范中看到,您可以使用感叹号来指示自定义对象/类型,并使用两个感叹号来指示显式内置类型.
obj1: !custom # whatever
obj2: !!str "My string"
Run Code Online (Sandbox Code Playgroud)
但是,我无法找到任何对上面使用的感叹号的引用.这是什么意思,为什么我使用的YAML库似乎无法解析它?请注意,如果我删除这些惊叹号,该文件将被解析.
我读过这个类似问题的答案: Do I need quote for strings in YAML?
但是,对于是否可以使用包含正斜杠的字符串转义引号,没有答案/。
例如,我们是否需要为以下 eslint 规则添加引号'react/no-deprecated': off?
假设我们有一个环境变量导出为:
export SOME_STRING_CONFIG_PARAM="01"
Run Code Online (Sandbox Code Playgroud)
并application.properties与:
some.string.config.param=${SOME_STRING_CONFIG_PARAM:01}
Run Code Online (Sandbox Code Playgroud)
注入 Java 字段:
@Value("${some.string.config.param}")
String someStringConfigfParam;
Run Code Online (Sandbox Code Playgroud)
启动 Spring 应用程序打印出该字段后:
System.out.println("someStringConfigParam: " + someStringConfigParam);
Run Code Online (Sandbox Code Playgroud)
结果为:
someStringConfigParam: 1
Run Code Online (Sandbox Code Playgroud)
如何告诉 Spring 该值应该被视为字符串?
基于这个问题:Docker Compose 带引号的变量替换与不带引号的变量替换
yaml 中带引号和不带引号的字符串之间有什么区别(如果有)?
这个问题主要来自我关于 docker compose 文件中变量替换的问题 - 即 yml。
官方给出的例子是:
db:
image: "postgres:${POSTGRES_VERSION}"
Run Code Online (Sandbox Code Playgroud)
我想知道如果没有字符串这是否有效:
db:
image: postgres:${POSTGRES_VERSION}
Run Code Online (Sandbox Code Playgroud)
如果不是,那为什么?在 docker 中使用变量替换时,什么情况下应该添加引号?我如何认出他们?它叫什么 - 如果我需要在谷歌上对它们进行进一步的研究?
我正在 Ruby 中解析 YAML 文件,某些输入导致 Psych 语法错误:
require 'yaml'
example = "my_key: [string] string"
YAML.load(example)
Run Code Online (Sandbox Code Playgroud)
导致:
Psych::SyntaxError: (<unknown>): did not find expected key
while parsing a block mapping at line 1 column 1
from [...]/psych.rb:456:in `parse'
Run Code Online (Sandbox Code Playgroud)
我从我无法控制的外部 API 收到此 YAML。我可以看到编辑输入以强制解析为字符串,使用my_key: '[string] string',如“我需要在 YAML 中为字符串添加引号吗?”中所述。,可以解决问题,但我无法控制如何接收输入。
有没有办法强制将输入解析为某些键(例如 )的字符串 my_key?是否有解决方法可以成功解析此 YAML?
我有一个.yaml这样的文件:
title: 'We'll do cool stuff'
draft: true
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
Error parsing YAML: YAMLException: can not read a block mapping entry;
a multiline key may not be an implicit key at line 2, column 6:
draft: true
^
Run Code Online (Sandbox Code Playgroud)
我该如何修复它?
注意:此设置似乎与引发相同错误的其他问题不同,包括以下帖子:
我们已经签入了 YML 文件,其中包含我们的 k8s“部署描述符”(这些东西有更好的名称吗?)
我正在查看一个服务描述符,例如......
apiVersion: v1
kind: Service
metadata:
name: regalia-service
namespace: sem
spec:
selector:
app: "proxy"
ports:
- protocol: TCP
port: 8080
targetPort: 8080
Run Code Online (Sandbox Code Playgroud)
我查看了另一个执行基本相同操作的存储库,我注意到 spec.selector.app 值缺少引号。喜欢...
apiVersion: v1
kind: Service
metadata:
name: scimitar-service
namespace: sem
spec:
selector:
app: proxy
ports:
- protocol: TCP
port: 8080
targetPort: 8080
Run Code Online (Sandbox Code Playgroud)
我认为这两个服务描述符正在做同样的事情,但我怎么知道?
k8s 描述符中的引号重要吗?
这是 YML 的事情还是 k8s 的事情?
yaml ×7
syntax ×2
.net ×1
annotations ×1
delimiter ×1
escaping ×1
java ×1
kubernetes ×1
mongodb ×1
parsing ×1
psychparser ×1
quotes ×1
ruby ×1
spring ×1
spring-boot ×1
string ×1
tags ×1
yamldotnet ×1