加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何在snakeyaml中隐藏bean类型

发布时间:2020-12-15 05:02:06 所属栏目:Java 来源:网络整理
导读:此代码将输出:(YAML) — !! org.test.bean.Person 地址:4011 16th Ave S. ….. 无论如何都可以隐藏我的bean类型(org.test.bean.Person)! (更喜欢使用snakeyaml配置…我找不到它..) 谢谢!! public static void dumpYAML(){ Constructor constructor = ne
此代码将输出:(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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读