You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

yamlMapper.readValue映射YAML时拼接属性名抛出InvalidFormatException原因求助

问题根因

核心是YAML语法结构错误,导致解析逻辑不符合预期:

  • YAML语法要求子级配置必须绑定到对应的父键,且缩进层级匹配。你当前的YAML文件中,defaultLangId行之后直接缩进写了列表项,没有声明列表对应的父键cities,YAML解析器会默认将后续缩进的所有内容整体作为defaultLangId的多行字符串值处理,最终得到的是包含60\n - code: AR\n label: ar的长字符串,无法转换为int类型,因此抛出InvalidFormatException。
  • 你修改defaultLangId取值后才触发报错属于偶发现象,本质是结构错误一直存在,此前可能因为空白符、换行符的巧合没有触发异常,属于隐藏的语法问题。
修复方案

将列表配置绑定到和Java类字段对应的cities键下,调整缩进层级即可,正确的YAML写法如下:

defaultLangId: 60
cities:
  - code: AR
    label: ar
last-result-index: 120

额外注意事项:

  • YAML对缩进非常敏感,同级键必须保持左对齐,子级元素要比父级多2个空格缩进,禁止使用Tab缩进
  • YAML中的配置键名必须和Java配置类的字段名严格匹配,否则会出现属性无法正常映射的问题

内容的提问来源于stack exchange,提问作者Zouhair Dre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 15:06:03