Laa*_*Laa 5 java yaml snakeyaml
此代码将输出:(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);
}
Run Code Online (Sandbox Code Playgroud)
使用org.yaml.snakeyaml.representer.Representer,设置Tag.MAP可以隐藏根标签.
Representer representer = new Representer();
representer.addClassTag(Person.class, Tag.MAP);
Run Code Online (Sandbox Code Playgroud)
你可以将Representer扩展为'偷偷摸摸'将任何未注册的bean类注入Map.
public class MapRepresenter extends Representer {
@Override
protected MappingNode representJavaBean(Set<Property> properties, Object javaBean) {
if (!classTags.containsKey(javaBean.getClass()))
addClassTag(javaBean.getClass(), Tag.MAP);
return super.representJavaBean(properties, javaBean);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2763 次 |
| 最近记录: |