第 188 章 JSON XStream DataFormat
从 Camel 版本 2.0 开始提供
xstream 是一个数据格式,它使用 XStream 库 向 XML 和 unmarshal Java 对象进行 marshal 和 unmarshal Java 对象。
要在 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 dataformat 支持 19 个选项,如下所列。
名称 | 默认值 | Java 类型 | 描述 |
---|---|---|---|
objectMapper |
| 使用 Jackson 时,查找并使用带有给定 id 的现有 ObjectMapper。 | |
useDefaultObjectMapper |
|
| 是否从 registry 中查找和使用默认 Jackson ObjectMapper。 |
prettyPrint |
|
| 要启用用户化的打印输出,请执行以下操作:默认为 false。 |
程序库 |
|
| 要使用的 json 库。 |
unmarshalTypeName |
| 取消警报时要使用的 java 类型的类名称 | |
jsonView |
| 当 marshalling a POJO to JSON 时,您可能想要从 JSON 输出中排除某些字段。通过 Jackson,您可以使用 JSON 视图来实现此目的。此选项是引用具有 JsonView 注释的类 | |
Include |
| 如果您想 marshal a pojo to JSON,并且 pojo 具有一些带有 null 值的字段。如果您想要跳过这些 null 值,您可以将这个选项设置为 NON_NULL | |
allowJmsType |
|
| 用于 JMS 用户,以允许 JMS spec 中的 JMSType 标头指定一个 FQN 类名称来用于 unmarshal。 |
collectionTypeName |
| 引用要使用的自定义集合类型,以便在 registry 中查找。这个选项应该很少被使用,但允许使用与基于 java.util.Collection 不同的集合类型。 | |
useList |
|
| 要取消警报到映射列表或 Pojo 列表,请执行以下操作: |
enableJaxbAnnotationModule |
|
| 在使用 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 分开的名称 | |
权限 |
| 添加控制在 xml/json 到 Java Bean 期间允许使用哪些 Java 软件包和类 XStream 的权限。必须在此处或全局使用 JVM 系统属性配置权限。可以在语法中指定权限,其中加上 符号是 allow,减号是拒绝的。使用 . 作为前缀支持通配符。例如,允许 com.foo 和所有子软件包,然后 specfy com.foo.。可以用逗号分开多个权限,如 com.foo.,-com.foo.bar.MySecretBean。以下默认权限始终包含:-,java.lang.,java.util.,除非通过用键 org.apache.camel.xstream.permissions 指定 JVM 系统属性来覆盖它。 | |
allowUnmarshallType |
|
| 如果启用,则允许 Jackson 在 unmarshalling 期间尝试使用 CamelJacksonUnmarshalType 标头。这只有在需要使用时才启用。 |
timezone |
| 如果设置,则 Jackson 会在 marshalling/unmarshalling 时使用 Timezone。此选项对其他 Json DataFormat 没有影响,如 gson、fastjson 和 xstream。 | |
contentTypeHeader |
|
| 如果数据格式能够这样做,则数据格式是否应该使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式到 XML 的 application/xml 或用于数据格式的 application/json 发送到 JSon 等。 |