java - 使用 JACKSON 将 JAXB 转换为 JSON

标签 java json spring jaxb

在我的应用程序中,JAXB 输出生成如下:

this.marshalOut(jaxb_Object, fileOutputStream);

这是对生成 XML 文件的 spring Object XML Mapping Marshallers 的方法调用。现在,我也喜欢在这一行之后生成 JSON 文件。任何人都知道使用 JAXB 输入生成 JSON 输出。

我在网上找到了这个示例代码:

ObjectMapper mapper = new ObjectMapper();
AnnotationIntrospector introspector = new JacksonAnnotationIntrospector();
// make deserializer use JAXB annotations (only)
mapper.getDeserializationConfig().setAnnotationIntrospector(introspector);
// make serializer use JAXB annotations (only)
mapper.getSerializationConfig().setAnnotationIntrospector(introspector);
mapper.writeValue( outputStream, jaxb_object);

setAnnotationIntrospector 已弃用,还有其他方法可以解决这个问题吗?

最佳答案

以下工作(并且不使用任何已弃用的构造函数):

ObjectMapper mapper = new ObjectMapper();

AnnotationIntrospector introspector =
    new JaxbAnnotationIntrospector(mapper.getTypeFactory());   

mapper.setAnnotationIntrospector(introspector);

具体来说,这一行

new JaxbAnnotationIntrospector(mapper.getTypeFactory());

使用了一个未弃用的构造函数。我已经对此进行了测试,它成功地处理了 JAXB 注释(例如在我的例子中为 @XmlTransient)。

关于java - 使用 JACKSON 将 JAXB 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11441299/

相关文章:

javascript - 我的 API 是否应该同时包含枚举的数字和字符串表示形式?

spring - 如何将 [DDL] 从生成类型标识迁移到 postgres db 的生成类型序列

java - 如何将属性文件中的值注入(inject)到字段中?

java - 类条件的等待方法不抛出 InterruptedException

java - 在类里面应用单一职责原则?

Java Bukkit 从 InputStream 加载 .jar 文件

c# - 如何从 WebAPI 响应 json 中删除 EF 的导航属性空数组?

Python 无法加载由 json.dump 创建的 JSON

Spring JPARepository 查询多对多交集表

java - QuickFix 创建订单并发送至 currenex