搜索

第 373 章 XML JSon DataFormat (已弃用)

download PDF

从 Camel 版本 2.10 开始提供

Camel 已支持多种数据格式来执行 XML 和 JSON 相关的转换,但它们都需要一个 POJO 作为输入(用于 marshalling)或生成 POJO 作为输出(用于 unmarshalling)。此数据格式提供从 XML 转换为 JSON 的功能,反之亦然,而无需逐步完成中间 POJO。

此数据格式利用 Json-lib 库来实现直接转换。在这种情况下,XML 被视为高级别格式,而 JSON 是低级格式。因此,marshal/unmarshal 语义会分配如下:

  • Marshalling plugging 从 XML 转换为 JSON
  • unmarshalling TOKEN 从 JSON 转换为 XML。

373.1. 选项

XML JSon dataformat 支持 13 个选项,如下所列。

Name默认值Java 类型描述

编码

 

字符串

设置编码。用于 unmarshalling (JSON 到 XML 转换)。

elementName

 

字符串

指定代表每个数组元素的 XML 元素的名称。用于 unmarshalling (JSON 到 XML 转换)。

arrayName

 

字符串

指定顶层 XML 元素的名称。用于 unmarshalling (JSON 到 XML 转换)。例如,在转换 1, 2, 3 时,它默认是 123 的输出。通过设置这个选项或 rootName,您可以更改元素"a"的名称。

forceTopLevelObject

false

布尔值

确定生成的 JSON 是否以与 XML root 元素匹配的最顶层元素开始。用于 marshalling (XML 到 JSon 转换)。如果禁用,XML 字符串 12 会变为 'x: '1', 'y': '2'。否则,它会变为 'a': 'x: '1', 'y': '2'。

namespaceLenient

false

布尔值

可以接受不完整的命名空间前缀的标记。用于 unmarshalling (JSON 到 XML 转换)。在大多数情况下,json-lib 会在运行时自动更改此标志以匹配处理。

rootName

 

字符串

指定顶层元素的名称。用于 unmarshalling (JSON 到 XML 转换)。如果没有设置,则 json-lib 将使用 arrayName 或 objectName (默认值:'o',在当前时间无法以这个数据格式配置)。如果设置为 'root',则 JSON 字符串 'x': 'value1', 'y' : 'value2' 将转换为 value1value2,否则 'root' 元素将命名为 'o'。

skipWhitespace

false

布尔值

确定 XML 元素之间的空格是否被视为文本值或忽略。用于 marshalling (XML 到 JSon 转换)。

trimSpaces

false

布尔值

确定在 String 值中是否省略前导和尾随空格。用于 marshalling (XML 到 JSon 转换)。

skipNamespaces

false

布尔值

指示是否应忽略命名空间。默认情况下,它们将使用 xmlns 元素添加到 JSON 输出中。用于 marshalling (XML 到 JSon 转换)。

removeNamespacePrefixes

false

布尔值

从 XML 限定元素中删除命名空间前缀,以便生成的 JSON 字符串不包含它们。用于 marshalling (XML 到 JSon 转换)。

expandableProperties

 

list

使用可扩展的属性,JSON 数组元素转换为 XML,作为类似 JSON 键的本地名称的重复 XML 元素序列,例如: number: 1,2,3,通常转换为 123 (可通过设置 elementName 修改),如果数字设置为用于 unmarshalling (JSON 到 XML 转换)的可扩展属性,则转换为 123。

typeHints

 

字符串

为生成的 XML 添加类型提示,以帮助转换回 JSON。用于 unmarshalling (JSON 到 XML 转换)。

contentTypeHeader

false

布尔值

如果数据格式可以这样做,则数据格式是否应使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式的 application/xml 放入 XML 或用于数据格式的 application/json,如 JSon 等。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.