第 188 章 JSon XStream DataFormat


从 Camel 版本 2.0 开始提供

Xstream 是一个 Data Format,它使用 XStream 库 来聚合和来自 XML 的 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 个选项,如下所列。

Name默认值Java 类型描述

objectMapper

 

字符串

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

useDefaultObjectMapper

true

布尔值

是否从 registry 中查找和使用默认的 Jackson ObjectMapper。

prettyPrint

false

布尔值

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

程序库

xstream

JsonLibrary

要使用哪个 json 库。

unmarshalTypeName

 

字符串

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

jsonView

 

当将 POJO 聚合到 JSON 时,您可能希望从 JSON 输出中排除某些字段。通过 Jackson,您可以使用 JSON 视图来实现这一目的。此选项是引用具有 JsonView 注释的类

Include

 

字符串

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

allowJmsType

false

布尔值

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

collectionTypeName

 

字符串

引用要在要使用的 registry 中的自定义集合类型。这个选项很少被使用,但允许使用不同的集合类型,而不是基于 java.util.Collection 作为默认值。

useList

false

布尔值

要取消警报到映射列表或 Pojo 列表。

enableJaxbAnnotationModule

false

布尔值

使用 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 中的多个功能匹配的名称

权限

 

字符串

添加控制在 unmarshal from xml/json 到 Java Bean 期间允许使用哪些 Java 软件包和类 XStream 的权限。必须在此处或全局使用 JVM 系统属性配置权限。权限可以使用加号允许的语法指定,减号是 deny。使用 . 作为前缀来支持通配符。例如,允许 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 放入 XML 或用于数据格式的 application/json,如 JSon 等。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.