第 188 章 JSon XStream DataFormat

可作为 Camel 版本 2.0 提供

XStream 是一个数据格式,它使用 XStream 库 到 marshal 和 unmarshal Java 对象,从 XML 使用。

要在 camel 路由中使用 XStream,您需要添加实现此数据格式的 camel-xstream 依赖项。

Maven 用户需要将以下依赖项添加到其 pom.xml 中:

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-xstream</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

188.1. 选项

JSon XStream 数据格式支持 19 选项,它们如下所列。

名称默认Java 类型描述

objectMapper

 

字符串

在使用 Jackson 时,查找并使用给定 ID 的现有 ObjectMapper。

useDefaultObjectMapper

true

布尔值

是否从注册表中查找和使用默认 Jackson ObjectMapper。

prettyPrint

false

布尔值

启用大量打印输出。默认为 false。

library

XStream

JsonLibrary

要使用的 json 库。

unmarshalTypeName

 

字符串

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

jsonView

 

当 marshalling a POJO to JSON 时,您可能想要从 JSON 输出中排除某些字段。通过 Jackson,您可以使用 JSON 视图来达到此目的。此选项引用包含 JsonView 注解的类

Include

 

字符串

如果您想将 pojo to JSON 放入 JSON,则 pojo 含有一些带有 null 值的字段。而且您要跳过这些 null 值,您可以将这个选项设置为 NON_NULL

allowJmsType

false

布尔值

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

collectionTypeName

 

字符串

指的是要在注册表中查找的自定义集合类型。这个选项很少被使用,但允许使用与 java.util.Collection 不同的集合类型作为默认值。

useList

false

布尔值

要取消与映射列表或 Pojo 列表相关的内容。

enableJaxbAnnotationModule

false

布尔值

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

moduleClassNames

 

字符串

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

moduleRefs

 

字符串

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

enableFeatures

 

字符串

在 Jackson com.fasterxml.jackson.databind.ObjectMapper 上启用的功能集。这个功能应当是与 com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature 或 com.fasterxml.jackson.jackson.jackson.databind.MapperFeature.jackson.databind.

disableFeatures

 

字符串

在 Jackson com.fasterxml.jackson.databind.ObjectMapper 上禁用功能集。这个功能应当是与 com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature 或 com.fasterxml.jackson.jackson.jackson.databind.MapperFeature.jackson.databind.

权限

 

字符串

将控制在 xml/json 的未编出时允许使用哪些 Java 软件包和类 XStream 的权限添加到 Java Bean。必须在此处配置权限,或使用 JVM 系统属性进行全局配置。可以通过允许加号符号的语法指定权限,并且拒绝减us 符号。使用 . 作为前缀支持通配符。例如,允许 com.foo 和所有子软件包,然后选择 specfy com.foo。多个权限可以通过逗号分隔,如 com.foo.,-com.foo.bar.MySecretBean。以下默认权限始终包括: -,java.lang.,java.util.,除非它通过用键 org.apache.camel.xstream.permissions 指定 JVM 系统属性而覆盖。

allowUnmarshallType

false

布尔值

如果启用,则 Jackson 可以在 unmarshalling 中尝试使用 CamelJacksonUnmarshalType 标头。只有在需要使用时,才应启用它。

timezone

 

字符串

如果设置,则 Jackson 会在 marshalling/unmarshalling 时使用 Timezone。此选项对其他 Json DataFormat (如 gson、fastjson 和 xstream)没有影响。

contentTypeHeader

false

布尔值

如果数据格式能够这样做,则数据格式是否应该以 data 格式设置 Content-Type 标头。例如,用于数据格式的 application/xml (数据格式)或 application/json 用于数据格式 marshalling to JSon etc。