Java 错误:无法读取输入对象(不是模板?):将YAML转换为JSON时出错:YAML:此上下文中不允许映射值
这个错误意味着什么?是因为压痕吗?有没有办法自动对齐yaml文件 我试图通过对齐等方式修复它,但它不起作用,我的詹金斯构建失败了Java 错误:无法读取输入对象(不是模板?):将YAML转换为JSON时出错:YAML:此上下文中不允许映射值,java,json,yaml,Java,Json,Yaml,这个错误意味着什么?是因为压痕吗?有没有办法自动对齐yaml文件 我试图通过对齐等方式修复它,但它不起作用,我的詹金斯构建失败了 - name: SPLUNK_LOG_TOKEN valueFrom: secretKeyRef: name: splunk-secret key: splunk.token - name: SPLUNK_LOG_URL //error in this line valueFrom:
- name: SPLUNK_LOG_TOKEN
valueFrom:
secretKeyRef:
name: splunk-secret
key: splunk.token
- name: SPLUNK_LOG_URL //error in this line
valueFrom:
configMapKeyRef:
name: splunk-config
key: splunk.url
以下是无效的YAML(在两项中):
-名称:SPLUNK\u LOG\u令牌
价值来源:
这是因为valueFrom
比name
更缩进。因此,YAML认为valueFrom
是标量SPLUNK\u LOG\u标记的延续。但是,后面跟着一个:
,它结束了一个隐式映射键。在多行标量上下文中禁止使用隐式映射键,因此会出现错误
有没有办法自动对齐yaml文件
YAML中的缩进是语义的一部分(就像Python中的缩进一样)。您基本上是在询问是否可以猜测缩进严重的文件的预期语义。虽然这在理论上并非不可能(我的意思是,你可以在StackOverflow上的YAML语法问题上训练一个神经网络;我已经无数次地看到了这个特殊的问题),但我认为不存在一个容易使用的解决方案
你问题的可能解决办法是
-名称:SPLUNK\u LOG\u令牌
价值来源:
然而,我不能100%肯定;也许你更想做像这样的事情
-名称:
id:SPLUNK\u LOG\u令牌
价值来源:
如果valueFrom
应该是name
的子项,则突出显示的是无效的yaml模式。
-名称:SPLUNK\u LOG\u令牌
-名称:SPLUNK\u LOG\u URL
应该是这样的
- name:
name: SPLUNK_LOG_TOKEN
valueFrom:
secretKeyRef:
name: splunk-secret
key: splunk.token
- name:
name: SPLUNK_LOG_URL
valueFrom:
configMapKeyRef:
name: splunk-config
key: splunk.url
如果你像我一样喜欢JSON,那么你可以试试这个在线转换器
当我刚接触yaml时,我常常编写较小的JSON数据块,并使用在线工具将其转换为yaml格式。
网上还有其他可用的工具,但根据个人经验,我更喜欢这个