第 167 章 Jacksonxml DataFormat


从 Camel 版本 2.16 开始提供

Jackson XML 是一个数据格式,它使用带有 XMLMapper 扩展的 Jackson 库 将 XML 有效负载 unmarshal 到一个 Java 对象,或将 Java 对象放入 XML 有效负载中。

INFO:如果您熟悉 Jackson,此 XML 数据格式的行为与其 JSON 对应部分相同,因此可用于为 JSON 序列化/反序列化/序列化注解的类。

此扩展也模拟 JAXB 的"代码第一"方法

此数据格式依赖于 Woodstox (特别是用于用户打印等功能),它是一个快速有效的 XML 处理器。

from("activemq:My.Queue").
  unmarshal().jacksonxml().
  to("mqseries:Another.Queue");

167.1. Jacksonxml 选项

JacksonXML dataformat 支持 15 个选项,如下所列。

Name默认值Java 类型描述

xmlMapper

 

字符串

查找并使用给定 id 的现有 XmlMapper。

prettyPrint

false

布尔值

要启用用户化的打印输出,请执行以下操作:默认为 false。

unmarshalTypeName

 

字符串

取消警报时要使用的 java 类型的类名称

jsonView

 

当 marshalling a POJO to JSON 时,您可能想要从 JSON 输出中排除某些字段。通过 Jackson,您可以使用 JSON 视图来实现此目的。此选项是引用具有 JsonView 注释的类

Include

 

字符串

如果您想 marshal a pojo to JSON,并且 pojo 具有一些带有 null 值的字段。如果您想要跳过这些 null 值,您可以将这个选项设置为 NON_NULL

allowJmsType

false

布尔值

用于 JMS 用户,以允许 JMS spec 中的 JMSType 标头指定一个 FQN 类名称来用于 unmarshal。

collectionTypeName

 

字符串

引用要使用的自定义集合类型,以便在 registry 中查找。这个选项应该很少被使用,但允许使用与基于 java.util.Collection 不同的集合类型。

useList

false

布尔值

要取消警报到映射列表或 Pojo 列表,请执行以下操作:

enableJaxbAnnotationModule

false

布尔值

在使用 jackson 时,是否启用 JAXB 注释模块。启用之后,Jackson 可以使用 JAXB 注释。

moduleClassNames

 

字符串

使用自定义 Jackson 模块 com.fasterxml.jackson.databind.Module 指定为 String with FQN 类名称。可以使用逗号分隔多个类。

moduleRefs

 

字符串

使用 Camel registry 中引用的自定义 Jackson 模块。可以使用逗号分隔多个模块。

enableFeatures

 

字符串

在 Jackson com.fasterxml.jackson.databind.ObjectMapper 上启用的功能集合。这个功能应该是与 com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, 或 com.fasterxml.jackson.databind.MapperFeature multiple features 分开的名称

disableFeatures

 

字符串

在 Jackson com.fasterxml.jackson.databind.ObjectMapper 上禁用的功能集合。这个功能应该是与 com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, 或 com.fasterxml.jackson.databind.MapperFeature multiple features 分开的名称

allowUnmarshallType

false

布尔值

如果启用,则允许 Jackson 在 unmarshalling 期间尝试使用 CamelJacksonUnmarshalType 标头。这只有在需要使用时才启用。

contentTypeHeader

false

布尔值

如果数据格式能够这样做,则数据格式是否应该使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式到 XML 的 application/xml 或用于数据格式的 application/json 发送到 JSon 等。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.