mor*_*des 6 javascript xml mapping json format-conversion
乍一看,我认为在javascript中使用xml数据就像查找xml-to-json库并将我的xml转换为javascript对象树一样简单.
但是,现在,我意识到可以在xml中创建不直接映射到json的结构.
具体来说,这个:
<parentNode>
<fooNode>data1</fooNode>
<barNode>data2</barNode>
<fooNode>data3</fooNode>
</parentNode>
Run Code Online (Sandbox Code Playgroud)
我发现的xml-to-json工具将之前的转换为如下所示:
{
parentnode:{
foonode:[
'data1',
'data3'
],
barnode:'data2'
}
Run Code Online (Sandbox Code Playgroud)
}
其中,子节点的顺序已经改变.我需要保留我的子节点的顺序.任何人都有比这更优雅的解决方案
a)放弃自动转换的想法,只设计我自己的javascript对象结构并编写代码来处理这个特定的xml架构
要么
b)放弃任何转换的想法,并将我的xml数据保留为xml文档,然后我将遍历.
已经建立了从 XML 到 JSON 的有限制的映射(请参阅在 XML 和 JSON 之间转换)以及从 JSON 到 XML 的映射(请参阅此处定义的JSONx和IBM 的转换规则)。然而,保留顺序的从 XML 到 JSON 的映射尚未定义。为了完全捕获 XML 的所有方面,应该用 JSON 来表达XML 信息集。如果您只关心 XML 元素(没有处理指令等),我会选择以下结构:
[
"parentNode",
{ } /* attributes */
[
[ "fooNode", { }, [ "data1" ] ]
[ "fooNode", { }, [ "data2" ] ]
[ "fooNode", { }, [ "data3" ] ]
]
]
Run Code Online (Sandbox Code Playgroud)
我实现了与 XML 和 Perl 数据结构之间的映射相同的映射,就像 JSON 和XML::Struct一样。该结构进一步对应于MicroXML的抽象数据模型,MicroXML 是 XML 的简化子集。