如何使用类的对象将YAML配置映射到POJO

时间:2016-01-05 07:33:49

标签: java yaml lombok snakeyaml

我有以下YAML配置

lookupKeys: - aggregate_location_city: outputKey: city_id - file1: source: ./pincode_to_city_mapping.csv primaryColumn: 0 secondaryColumn: 1 - file2: source: ./new_geo_city.csv primaryColumn: 1 secondaryColumn: 0

相应的配置类是

@Getter
@Setter
public class Configuration {
    private ArrayList<LookupKey> lookupKeys;

    @Getter
    @Setter
    public class LookupKey{
        private String outputKey;
        private ArrayList<MappingFile> mappingFiles;

        @Getter
        @Setter
        public class MappingFile{
            private String source;
            private int primaryColumn;
            private int secondaryColumn;
        }
    }
}

如何将配置文件映射到Configuration类?我正在使用snake-yaml。一个简单的yaml.loadAs(in, Configuration.class)无效。

2 个答案:

答案 0 :(得分:0)

为了避免必须进行母语编码 - 测试 - 永远纠正自己的Mapping类, 您可以通过两个步骤为您生成Java文件:

这为您提供了可以与Jackson一起使用的Java类。

答案 1 :(得分:-2)

不要使用内部类。不得在Configuration中定义LookupKey。