首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xml到json的映射挑战

xml到json的映射挑战
EN

Stack Overflow用户
提问于 2009-05-12 16:28:24
回答 4查看 6.8K关注 0票数 8

乍一看,我认为在javascript中使用xml数据很简单,只需找到一个xml-to-json库并将xml转换为javascript对象树即可。

但是,现在我意识到可以在xml中创建不直接映射到json的结构。

具体地说,这是:

代码语言:javascript
复制
<parentNode>
    <fooNode>data1</fooNode>
    <barNode>data2</barNode>
    <fooNode>data3</fooNode>
</parentNode>

我发现的xml- to -json工具将前面的内容转换为以下内容:

代码语言:javascript
复制
{
parentnode:{
    foonode:[
        'data1',
        'data3'
    ],
    barnode:'data2'
}

}

其中,子节点的顺序已经改变。我需要保持我的子节点的顺序。任何人都有比这更优雅的解决方案

a)放弃自动转换的想法,只设计我自己的javascript对象结构,并编写代码来处理这个特定的xml模式

b)完全放弃任何转换的想法,将xml数据作为xml文档,然后将其遍历。

EN

回答 4

Stack Overflow用户

发布于 2013-09-06 20:43:35

存在已建立的从XML到JSON的映射(请参阅)和从JSON到XML的映射(请参阅JSONx as defined hereconversion rules by IBM)。但是,还没有定义从XML到JSON的保持顺序的映射。要完全捕获XML的所有方面,应该用JSON表达XML Infoset。如果您只关心XML元素(没有处理指令等),我会选择这个结构:

代码语言:javascript
复制
[
  "parentNode",
  { } /* attributes */
  [ 
    [ "fooNode", { }, [ "data1" ] ]
    [ "fooNode", { }, [ "data2" ] ]
    [ "fooNode", { }, [ "data3" ] ]
  ]
]

我实现了与XML和Perl数据结构之间的映射相同的映射,就像用XML::Struct实现的JSON一样。该结构还对应于XML的简化子集MicroXML的抽象数据模型。

票数 4
EN

Stack Overflow用户

发布于 2009-05-12 16:33:14

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

票数 2
EN

Stack Overflow用户

发布于 2009-05-12 16:36:07

为什么不试试:

代码语言:javascript
复制
{ parentNode: [
  ["fooNode", "data1"],
  ["barNode", "data2"],
  ["fooNode", "data3"] ]
}

我认为这或多或少会解决问题。

是的,我认为如果自动转换不够灵活,您应该放弃它;相反,您可能会寻找一种使这种映射变得微不足道的API。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/853665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档