Повторяющийся ключ в файле конфигурации YAML

В YAML есть следующее:

key1
  key2: "value"

key1
  key2
    key3: "value2"

Получить исключение дубликата ключа key1. Вызвано: org.yaml.snakeyaml.parser.ParserException: во время синтаксического анализа MappingNode

Пробует разные комбинации, но не может правильно разобрать.

Может ли кто-нибудь помочь или направить здесь.

Спасибо


person Community    schedule 06.12.2017    source источник
comment
Вы можете указать SnakeYAML разрешить дублирование ключей.   -  person Andrey    schedule 07.05.2019


Ответы (3)


Ваш YAML синтаксически недействителен, но я предполагаю, что на самом деле он выглядит так:

key1:
  key2: "value"

key1:
  key2:
    key3: "value2"

Ваша ошибка в том, что key1 используется два раза в качестве ключа сопоставления в корневом узле. Это незаконно согласно спецификации YAML:

Содержимое узла сопоставления представляет собой неупорядоченный набор пар узлов «ключ: значение» с ограничением, заключающимся в том, что каждый из ключей является уникальным.

Решение состоит в том, чтобы сделать все ключи одного и того же сопоставления уникальными:

key11:
  key2: "value"

key12:
  key2:
    key3: "value2"
person flyx    schedule 06.12.2017
comment
не может сделать ключи уникальными из-за некоторых ограничений требований - person ; 06.12.2017

Я тоже столкнулся с той же проблемой. Потом меня осенило! Ответ прост. От

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

to

mapping:
  refresh:
    schedule:
      frequency:
        milli: 86400000
      initial:
        delay:
          ms: 30000
person sivakadi    schedule 16.04.2019

Вы можете исправить это так:

key1
  key2: "value"
  key2.key3: "value2"
person ZXW    schedule 16.06.2021