第 167 章 JacksonXML DataFormat
从 Camel 版本 2.16 开始提供
Jackson XML 是一个数据格式,它使用带有 XMLMapper 扩展的 Jackson 库来 将 XML 有效负载 unmarshal 到 Java 对象,或将 Java 对象 marshal Java 对象放入 XML 有效负载中。
INFO:如果您熟悉 Jackson,这个 XML 数据格式的行为与其 JSON 对应部分的行为相同,因此可与为 JSON 序列化/序列化注解的类一起使用。
此扩展也模仿 JAXB 的"代码先代码"方法。
此数据格式依赖于 Woodstox (特别是对于用户打印等功能),这是一个快速高效的 XML 处理器。
from("activemq:My.Queue"). unmarshal().jacksonxml(). to("mqseries:Another.Queue");
167.1. Jacksonxml Options
JacksonXML dataformat 支持 15 个选项,如下所列。
Name | 默认值 | Java 类型 | 描述 |
---|---|---|---|
xmlMapper |
| 查找并使用具有给定 ID 的现有 XmlMapper。 | |
prettyPrint |
|
| 要启用用户的打印输出,请执行以下操作:默认为 false。 |
unmarshalTypeName |
| 取消警报时要使用的 java 类型的类名称 | |
jsonView |
| 当将 POJO 聚合到 JSON 时,您可能希望从 JSON 输出中排除某些字段。通过 Jackson,您可以使用 JSON 视图来实现这一目的。此选项是引用具有 JsonView 注释的类 | |
Include |
| 如果您要将 pojo 放入 JSON,并且 pojo 有一些带有 null 值的字段。如果您想要跳过这些 null 值,您可以将这个选项设置为 NON_NULL | |
allowJmsType |
|
| 用于 JMS 用户,允许 JMS spec 中的 JMSType 标头指定用于 unmarshal 的 FQN 类名称。 |
collectionTypeName |
| 引用要在要使用的 registry 中的自定义集合类型。这个选项很少被使用,但允许使用不同的集合类型,而不是基于 java.util.Collection 作为默认值。 | |
useList |
|
| 要取消警报到映射列表或 Pojo 列表。 |
enableJaxbAnnotationModule |
|
| 使用 jackson 时是否启用 JAXB 注释模块。启用后,Jackson 可以使用 JAXB 注释。 |
moduleClassNames |
| 要使用自定义 Jackson 模块 com.fasterxml.jackson.databind.Module 指定为 String 带有 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 中的多个功能匹配的名称 | |
disableFeatures |
| 在 Jackson com.fasterxml.jackson.databind.ObjectMapper 上禁用的一组功能。这个功能应该是与来自 com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, 或 com.fasterxml.jackson.databind.MapperFeature 中的多个功能匹配的名称 | |
allowUnmarshallType |
|
| 如果启用,则允许 Jackson 在 unmarshalling 期间尝试使用 CamelJacksonUnmarshalType 标头。只有在需要使用时,才会启用。 |
contentTypeHeader |
|
| 如果数据格式可以这样做,则数据格式是否应使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式的 application/xml 放入 XML 或用于数据格式的 application/json,如 JSon 等。 |