YAML не имеет «сложенных ключей» . Он имеет вложенные отображения. Точка .
не является специальным символом и может обычно встречаться в ключе, поэтому ее нельзя использовать для запроса значений во вложенных сопоставлениях.
Вы уже показали, как получить доступ к сопоставлению, содержащему клавишу test3
Вы можете просто запросить значение оттуда:
((Map<String, Object)yamlFile.get("test2")).get("test3");
Однако намного проще определить структуру вашего файла YAML как класс:
class YamlFile {
static class Inner {
public String test3;
}
public String test1;
public Inner test2;
}
Затем вы можете загрузить его как это:
YamlFile file = new Yaml(new Constructor(YamlFile.class)).loadAs(
input, YamlFile.class);
file.test2.test3; // this is your string