java - yamlMapper.readValue 将值与下一个属性名称连接导致 InvaidFormatException
问题描述
我有这种将 yaml 配置文件映射到类的方法,但是映射显然不正确,如下图所示,而不是将 60 映射到属性,它连接下一个属性名称,这会default
导致异常检索到的值为 a 。有没有人知道为什么会这样?default
int
string
我尝试\n
在 60 之后添加一个以强制换行但没有成功。(在我更新文件之前它工作正常,将 defaultLangId 中的 30 更改为 60 )。
Yaml 文件内容:
defaultLangId : 60
- code: AR
label: ar
last-result-index : 120
我的配置类:
@Getter
@Setter
public class XXXXXConfiguration {
private int defaultLangId;
private List<CodeLabel> cities;
private int lastResultIndex;
}
解决方案
后面的行60
更缩进。这会导致 YAML 将其读取为标量的延续60
,从而导致60 - code
(-
被视为序列项指示符,它不能在标量内)。仅当:
遇到时,该值才最终确定,因为:
可以结束标量。
您的类表明您要提供要加载到该字段中的序列cities
;您需要为此提供cities
YAML 中的密钥:
defaultLangId : 60
cities:
- code: AR
label: ar
last-result-index : 120
推荐阅读
- python - 如何使用单个打印语句确定行索引?
- php - PHP GearmanClient 无法在 Ubuntu 16.04 LTS 上运行
- python - 从 pandas 数据框中挑选出某些索引
- amazon-web-services - VPC IP 不正确
- graph - Cypher 中的零个或多个路径长度
- python - 矩阵包含每行的特定数字
- youtube-api - 您如何使用 YouTube 数据 API 获取过去的直播流
- c - 二进制 int* 数组到 int 等效
- cqrs - CQRS(事件溯源):具有多个聚合的投影
- python - 将 str 添加到列表中每个数字的末尾