第 369 章 XML JSon DataFormat (已弃用)
作为 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。
369.1. 选项
XML JSon 数据格式支持 13 个选项,它们如下。
名称 | 默认 | Java 类型 | 描述 |
---|---|---|---|
encoding |
| 设置编码。用于取消过滤(JSON 到 XML 转换)。 | |
elementName |
| 指定代表每个数组元素的 XML 元素的名称。用于取消过滤(JSON 到 XML 转换)。 | |
arrayName |
| 指定顶级 XML 元素的名称。用于取消过滤(JSON 到 XML 转换)。例如,在转换 1 时,2 为 3,默认情况下它将默认是 123。通过设置这个选项或 rootName,您可以更改元素 'a' 的名称。 | |
forceTopLevelObject |
|
| 确定生成的 JSON 是否以名称与 XML 根元素匹配的顶层元素开始。用于总结(XML 到 JSon 转换)。如果禁用,XML 字符串 12 可切换到 'x: '1','y': '2'。否则,它将进入 'a': 'x: '1', 'y': '2'。 |
namespaceLenient |
|
| 标记可以接受不完整的命名空间前缀。用于取消过滤(JSON 到 XML 转换)。在大多数情况下,json-lib 会在运行时自动更改此标志以匹配处理。 |
rootName |
| 指定顶级元素的名称。用于取消过滤(JSON 到 XML 转换)。如果没有设置,则 json-lib 将使用 arrayName 或 objectName (默认值:'o',当前无法以此数据格式配置)。如果设置为 'root',JSON 字符串 'x': 'value1', 'y' : 'value2' 将转换为 value1value2,否则 'root' 元素将被命名为 'o'。 | |
skipWhitespace |
|
| 确定 XML 元素之间的空格是否作为文本值或忽略。用于总结(XML 到 JSon 转换)。 |
trimSpaces |
|
| 确定 String 值中是否会省略前导和尾随空格。用于总结(XML 到 JSon 转换)。 |
skipNamespaces |
|
| 信号是否应该忽略命名空间。默认情况下,它们将使用 xmlns 元素添加到 JSON 输出中。用于总结(XML 到 JSon 转换)。 |
removeNamespacePrefixes |
|
| 从 XML 限定元素中删除命名空间前缀,以便生成的 JSON 字符串不包含它们。用于总结(XML 到 JSon 转换)。 |
expandableProperties |
| 通过可扩展属性,JSON 数组元素转换为 XML,因为本地名称等于 JSON 密钥的重复 XML 元素序列,例如: number: 1,2,3,通常转换为 123 (其中 e 可以通过设置 elementName)进行修改,而如果数字被设置为 123,则该编号被设置为不过滤(JSON 到 XML)。 | |
typeHints |
| 在生成的 XML 中添加类型提示,以帮助转换回 JSON。用于取消过滤(JSON 到 XML 转换)。 | |
contentTypeHeader |
|
| 如果数据格式能够这样做,则数据格式是否应该以 data 格式设置 Content-Type 标头。例如,用于数据格式的 application/xml (数据格式)或 application/json 用于数据格式 marshalling to JSon etc。 |