您在此处:
Omnistudio 数据映射器中的 XML 和 JSON
除了 JSON 之外,数据映射器还可以有 XML 输入和输出。数据映射器中的 XML 格式是无序键值,类似于 JSON 的结构。
要指定 XML 输出元素的序列化顺序,请使用按所需顺序组成的 XML 结构填充“预期 XML 输出”窗格。
此示例比较了 JSON 和 XML 中的等效结构。
JSON
{
"Root": {
"#text": "rootValue",
"@attribute1": "attVal1",
"#ns": "http://namespace1",
"#ns#a": "http://namespace2",
"Child": [{
"@attribute2": "attval2"
},
{
"#text": "childValue"
}
]
}
}
XML 文件
<Root attribute1="attVal1" xmlns="http://namespace1" xmlns:a="http://namespace2">
rootValue
<Child attribute2="attval2"></Child>
<Child>childValue</Child>
</Root>
通过使用这些约定来处理格式之间差异的数据映射器,将 XML 转换为 JSON。
- 输入 XML 节点中的值被转换为带有密钥
#text的输出 JSON。 - XML:
<Root>rootValue</Root> - JSON:
{ "Root": { "#text": "rootValue" } } - 输入 XML 节点中的值被转换为输出 JSON,其密钥前面有一个 at 符号 (
@)。 - XML:
<Root attribute1="attVal1"></Root> - JSON:
{ "Root": { "@attribute1": "attVal1" } } - 输入 XML 节点中的命名空间在输出 JSON 中以
#ns开头。 - XML:
<Root xmlns="http://namespace1" xmlns:a="http://namespace2"> </Root> - JSON:
{ "Root": { "#ns":"http://namespace1", "#ns#a":"http://namespace2, } } - 冒号是数据映射器映射中的保留字符,由
#替换。 - XML:
<Root:Data>data</Root:Data> - JSON:
{ "Root#Data": { "#text":"data", } }
