第 183 章 JSON Jackson DataFormat
可作为 Camel 版本 2.0 提供
jackson 是一个数据格式,它使用 Jackson Library
from("activemq:My.Queue").
  marshal().json(JsonLibrary.Jackson).
  to("mqseries:Another.Queue");
from("activemq:My.Queue").
  marshal().json(JsonLibrary.Jackson).
  to("mqseries:Another.Queue");183.1. jackson 选项
JSon Jackson 数据格式支持 19 个选项,它们如下所列。
| 名称 | 默认 | Java 类型 | 描述 | 
|---|---|---|---|
| objectMapper | 
								 | 在使用 Jackson 时,查找并使用给定 ID 的现有 ObjectMapper。 | |
| useDefaultObjectMapper | 
								 | 
								 | 是否从注册表中查找和使用默认 Jackson ObjectMapper。 | 
| prettyPrint | 
								 | 
								 | 启用大量打印输出。默认为 false。 | 
| library | 
								 | 
								 | 要使用的 json 库。 | 
| unmarshalTypeName | 
								 | 取消armshalling 时要使用的 java 类型的类名称 | |
| jsonView | 
								 | 当 marshalling a POJO to JSON 时,您可能想要从 JSON 输出中排除某些字段。通过 Jackson,您可以使用 JSON 视图来达到此目的。此选项引用包含 JsonView 注解的类 | |
| Include | 
								 | 如果您想将 pojo to JSON 放入 JSON,则 pojo 含有一些带有 null 值的字段。而且,您想要跳过这些 null 值,您可以将这个选项设置为 not_NULL | |
| allowJmsType | 
								 | 
								 | 用于 JMS 用户,允许 JMS spec 中的 JMSType 标头指定用于 unmarshal 的 FQN 类名称。 | 
| collectionTypeName | 
								 | 指的是要在注册表中查找的自定义集合类型。这个选项很少被使用,但允许使用与 java.util.Collection 不同的集合类型作为默认值。 | |
| useList | 
								 | 
								 | 要取消与映射列表或 Pojo 列表相关的内容。 | 
| enableJaxbAnnotationModule | 
								 | 
								 | 使用 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 | 
								 | 
								 | 如果启用,则 Jackson 可以在 unmarshalling 中尝试使用 CamelJacksonUnmarshalType 标头。只有在需要使用时,才应启用它。 | 
| timezone | 
								 | 如果设置,则 Jackson 会在 marshalling/unmarshalling 时使用 Timezone。此选项对其他 Json DataFormat (如 gson、fastjson 和 xstream)没有影响。 | |
| contentTypeHeader | 
								 | 
								 | 如果数据格式能够这样做,则数据格式是否应该以 data 格式设置 Content-Type 标头。例如,用于数据格式的 application/xml (数据格式)或 application/json 用于数据格式 marshalling to JSon etc。 |