Игнорировать поля из yaml при разборе его с помощью SnakeYaml (Невозможно найти свойство в классе)
Я использую SnakeYaml для разбора файла yaml, есть ли способ игнорировать свойства из файла yaml?
2 ответа
Я нашел это:)
Representer representer = new Representer();
representer.getPropertyUtils().setSkipMissingProperties(true);
Yaml yaml = new Yaml(new Constructor(MyClass.class),representer);
Это основано на решении Билала; однако пустой конструктор-представитель был помечен как устаревший.
Добавление следующего позволит избежать использования устаревшего конструктора.
Для SnakeYml 1.x
Representer representer = new Representer(new DumperOptions());
representer.getPropertyUtils().setSkipMissingProperties(true);
Constructor constructor = new Constructor(MyClass.class);
Yaml yaml = new Yaml(constructor, representer);
Для SnakeYml >= 2.x
Representer representer = new Representer(new DumperOptions());
representer.getPropertyUtils().setSkipMissingProperties(true);
LoaderOptions loaderOptions = new LoaderOptions();
Constructor constructor = new Constructor(MyClass.class, loaderOptions);
Yaml yaml = new Yaml(constructor, representer);