第 373 章 XML JSon DataFormat (已弃用)


从 Camel 版本 2.10 开始提供

Camel 已支持很多数据格式来执行 XML 和 JSON 相关的转换,但所有这些格式都需要一个 POJO 作为输入(用于 marshalling)或生成 POJO 作为输出(用于输出)。此数据格式提供从 XML 转换到 JSON 的功能,反之亦然,无需通过中间 POJO 进行分步。

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

  • Marshalling TOKEN 从 XML 转换为 JSON
  • 从 JSON 转换为 XML.

373.1. 选项

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

名称默认值Java 类型描述

编码

 

字符串

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

elementName

 

字符串

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

arrayName

 

字符串

指定顶级 XML 元素的名称。用于 unmarshalling (JSON 到 XML 转换)。例如,当转换 1、2、3 时,默认情况下会输出为 123。通过设置这个选项或 rootName,您可以更改元素的名称。

forceTopLevelObject

false

布尔值

确定生成的 JSON 是否将从名称与 XML root 元素匹配的最顶层元素开始。用于划分(XML 到 JSon 转换)。如果禁用,XML 字符串 12 将转换为 'x: '1', 'y': '2'。否则,它会变为 'a': '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 元素之间的空格是否被视为文本值或忽略。用于划分(XML 到 JSon 转换)。

trimSpaces

false

布尔值

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

skipNamespaces

false

布尔值

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

removeNamespacePrefixes

false

布尔值

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

expandableProperties

 

list

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

typeHints

 

字符串

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

contentTypeHeader

false

布尔值

如果数据格式能够这样做,则数据格式是否应该使用 data 格式的类型设置 Content-Type 标头。例如,用于数据格式到 XML 的 application/xml 或用于数据格式的 application/json 发送到 JSon 等。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.