千金一刻莫空度,老大无成空自伤。这篇文章主要讲述如何使quickxml ObjectMapper与codehaus注释一起使用相关的知识,希望能为你提供帮助。
我正在使用来自fasterxml包(com.fasterxml.jackson.databind.ObjectMapper)的ObjectMapper类来序列化一些POJO。我面临的问题是POJO中的所有注释都来自旧的codehaus库。 fastxml ObjectMapper无法识别codehaus jackson注释。一种可能的解决方案是将POJO中的注释更新为fasterxml,但POJO由第三方提供,因此我无法对其进行修改。请提出解决此问题的方法。
答案您可以提供自己的AnnotationIntrospector来处理旧注释。
ObjectMapper mapper = new ObjectMapper();
mapper.setAnnotationIntrospector(new MyAnnotationIntrospector());
您还可以查看jackson github上列出的jackson-legacy-introspector。它是旧注释的AnnotationIntrospector的现有实现。
另一答案【如何使quickxml ObjectMapper与codehaus注释一起使用】如果您可以使用继承的变通方法
// Original class doesn't need to be modified
class Customer {
@org.codehaus.jackson.annotate.JsonProperty("first_name")
String firstName;
}class CustomerWrapper extends Customer {
@com.fasterxml.jackson.annotation.JsonProperty("first_name")
String firstName;
}
在代码中使用CustomerWrapper类,它将被正确序列化
推荐阅读
- Apple Metal元素矩阵乘法(Hadamard产品)
- 如何在Android和iPhone的移动应用程序中实现推荐计划
- 如何在命令行上使用相同的命令,通过Ruby shell命令运行app
- 为什么`android(foreground`属性不起作用())
- 如何在android表格布局中合并两行
- 如何将xml文件保存在我想要的目录中(android studio)[关闭]
- 应用程序图标缺失/未出现android studio
- Android资源链接失败('à¥?dp'与属性layout_marginBottom(attr)维度不兼容)
- 将形状添加到LinearLayout Android