Игнорировать поля из 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);
Другие вопросы по тегам