搜索

第 372 章 XML JSon DataFormat (已弃用)

download PDF

作为 Camel 2.10 版本提供

Camel 已经支持很多数据格式来执行 XML 和 JSON 相关的转换,但所有这些数据都需要 POJO 作为输入(绑定)或生成 POJO 作为输出(用于取消传输)。这个数据格式提供了从 XML 转换为 JSON 的能力,反之亦然,而无需通过中间 POJO。

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

  • marshalling TOKEN 从 XML 转换为 JSON
  • 从 JSON 转换为 XML 的 unmarshalling TOKEN。

372.1. 选项

XML JSon 数据格式支持 13 个选项,它们如下所列。

Name默认Java 类型描述

encoding

 

字符串

设置编码。用于取消过滤(JSON 到 XML 转换)。

elementName

 

字符串

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

arrayName

 

字符串

指定顶级 XML 元素的名称。用于取消过滤(JSON 到 XML 转换)。例如,在转换 1 时,2 为 3,默认情况下它将默认是 123。通过设置这个选项或 rootName,您可以更改元素 'a' 的名称。

forceTopLevelObject

false

布尔值

确定生成的 JSON 是否以名称与 XML 根元素匹配的顶层元素开始。用于总结(XML 到 JSon 转换)。如果禁用,XML 字符串 12 可切换到 'x: '1','y': '2'。否则,它将进入 'a': 'x: '1', 'y': '2'。

namespaceLenient

false

布尔值

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

rootName

 

字符串

指定顶级元素的名称。用于取消过滤(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,因为本地名称等于 JSON 密钥的重复 XML 元素序列,例如: number: 1,2,3,通常转换为 123 (其中 e 可以通过设置 elementName)进行修改,而如果数字被设置为 123,则该编号被设置为不过滤(JSON 到 XML)。

typeHints

 

字符串

在生成的 XML 中添加类型提示,以帮助转换回 JSON。用于取消过滤(JSON 到 XML 转换)。

contentTypeHeader

false

布尔值

如果数据格式能够这样做,则数据格式是否应该以 data 格式设置 Content-Type 标头。例如,用于数据格式的 application/xml (数据格式)或 application/json 用于数据格式 marshalling to JSon etc。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.