其他分享
首页 > 其他分享> > 如何在snakeyaml中隐藏bean类型

如何在snakeyaml中隐藏bean类型

作者:互联网

此代码将输出:(YAML)

— !! org.test.bean.Person

地址:4011 16th Ave S.

…..

无论如何都可以隐藏我的bean类型(org.test.bean.Person)!
(更喜欢使用snakeyaml配置…我找不到它..)

谢谢!!

public static void dumpYAML(){
    Constructor constructor = new Constructor(Person.class);
    TypeDescription personDescription = new TypeDescription(Person.class);
    personDescription.putListPropertyType("phone", Tel.class);
    constructor.addTypeDescription(personDescription);

    Yaml yaml = new Yaml(constructor);
    Person person = (Person) yaml.load(makeYAML());

    DumperOptions options = new DumperOptions();
    options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
    options.setCanonical(false); // display bean member attribute
    options.setExplicitStart(true); // display --- start

    yaml = new Yaml(options);
    String output = yaml.dump(person);
    System.out.println(output);
}

解决方法:

使用org.yaml.snakeyaml.representer.Representer,设置Tag.MAP可以隐藏根标签.

    Representer representer = new Representer();
    representer.addClassTag(Person.class, Tag.MAP);

标签:java,yaml,snakeyaml
来源: https://codeday.me/bug/20190715/1467833.html