Spring Boot YAML配置文件中的密钥重复

axzmvihb  于 2023-02-16  发布在  Spring
关注(0)|答案(4)|浏览(267)

我在YAML中有以下内容:

key1
  key2: "value"

key1
  key2
    key3: "value2"

获取异常重复键key1

Caused by: org.yaml.snakeyaml.parser.ParserException: while parsing MappingNode

尝试了各种组合,但无法正确分析。

zphenhs4

zphenhs41#

您的YAML在语法上是无效的,但我假设它实际上看起来像这样:

key1:
  key2: "value"

key1:
  key2:
    key3: "value2"

您的错误是key1被用作根节点中的Map键两次。根据YAML规范,这是非法的:
Map节点内容是一组无序的键:值节点对,限制条件是每个键都是唯一的。
解决方案是使同一Map的所有键都是唯一的:

key11:
  key2: "value"

key12:
  key2:
    key3: "value2"
xdyibdwo

xdyibdwo2#

我也面临着同样的问题。然后它击中了我!答案很简单。从

mapping:
  refresh:
    schedule:
      frequency:
        milli: 86400000
mapping:
  refresh:
    schedule:
      initial:
        delay:
          ms: 30000

mapping:
  refresh:
    schedule:
      frequency:
        milli: 86400000
      initial:
        delay:
          ms: 30000
g2ieeal7

g2ieeal73#

所以下面的简单解决方案对我很有效。基本上,在第一个场景中,"server"关键字作为一个单独的结构出现在第二个场景中,"server"关键字作为子结构出现。我只是做了一个小的缩进,它就起作用了。
之前:-〉
服务器:端口:8761
Eureka :客户:在Eureka 注册:错误获取注册表:假的
服务器:同步空时等待时间(以消息为单位):假的
之后:-〉服务器:端口:8761
Eureka :客户:在Eureka 注册:错误获取注册表:假服务器:同步为空时的等待时间:假的

wlsrxk51

wlsrxk514#

您可以这样修复它:

key1
  key2: "value"
  key2.key3: "value2"

相关问题