xml到json映射挑战

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文档,然后我将遍历.

Jak*_*kob 5

已经建立了从 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 的简化子集。


Nor*_*rtl 2

如果您经常需要相同的元素名称并且您关心排序,那么保留 XML 可能会更好。您期望使用 JSON 有什么好处?