Как читать разделы конфигурации YAML - PullRequest
0 голосов
/ 16 января 2019

Я создаю программу чтения конфигурации Yaml. У меня есть некоторые проблемы, чтобы получить значения из разделов. Я уже создал способ читать не секционные ключи, а когда раздел, как

Test:
  Yes:
    True: a
    False: b
  No:
    True:
      Default: c
    False: d

в файле yml, я хочу добавить путь к значениям в HashMap. В случае выше, путь в HashMap будет

Test.Yes.True = a
Test.Yes.False = b
Test.No.True.Default = c
Test.No.False = d

обратите внимание, что Yes и No являются разделами внутри Test. Значения True и False находятся внутри раздела Yes, который находится в Test и т. Д. Я понятия не имею, как читать, как блок выше.

1 Ответ

0 голосов
/ 16 января 2019

Прежде всего, вы должны показать, что вы пытались и где вы потерпели неудачу. Это помогает нам дать очень конкретный ответ на ваш вопрос.

А пока попробуйте преобразовать yaml в соответствующий Java POJO. Вы можете сделать это напрямую или пошагово. Вы можете сделать это самостоятельно или использовать онлайн-конвертеры.

  1. Во-первых, вы можете конвертировать из файла yaml в Json. https://www.json2yaml.com/
  2. затем с помощью json вы можете создавать Java POJO. http://pojo.sodhanalibrary.com/ ИЛИ http://www.jsonschema2pojo.org/

Преобразованный json в java POJO автоматически создаст для вас правильный формат отображения, а затем вы сможете легко их использовать.

для вашего наиболее вложенного регистра значений по умолчанию, вы можете взять HashMap с именем "HashMap<String, String> trueHashMap = new HashMap<String, String>()", если хотите, в противном случае новый POJO с "True.java" также будет работать ".

public class True
{
    private String false;
    private String true;
    // getters setters
}

А затем вам нужно провести некоторое исследование, чтобы сопоставить их и выбрать конфигурацию. Примечание: Вы можете сделать это несколькими онлайн-конвертерами. Я предоставил только популярные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...