javascript - 在 JavaScript 中序列化 XML

标签 javascript json xml express

我在 Express 服务器中使用 XML,并使用 express-xml-bodyparser 对其进行解析,但生成的对象基本上无法使用。

XML

<SubClass code="A07.0"/>
<SubClass code="A07.1"/>
<SubClass code="A07.2"/>
<SubClass code="A07.3"/>
<SubClass code="A07.8"/>
<SubClass code="A07.9"/>

被序列化为 JSON

subclass:
[ { '$': { code: 'A07.0' } },
  { '$': { code: 'A07.1' } },
  { '$': { code: 'A07.2' } },
  { '$': { code: 'A07.3' } },
  { '$': { code: 'A07.8' } },
  { '$': { code: 'A07.9' } } ]

有没有办法直接将其粘贴到

subclass: ['A07.0','A07.1','A07.2','A07.3','A07.8','A07.9']

或者一些简单的方法如何将它转换成这个数组?

最佳答案

您可以设置mergeAttrs选项为 true 以删除 $ 属性:

 xmlparser({ mergeAttrs: true, explicitArray: false})

输出:

SubClass: [
    { code: "A07.0" },
    { code: "A07.1" },
    { code: "A07.2" },
    { code: "A07.3" },
    { code: "A07.8" },
    { code: "A07.9" }
]

或者您可以只使用array.map()方法:

var data = { subclass:
[ { '$': { code: 'A07.0' } },
  { '$': { code: 'A07.1' } },
  { '$': { code: 'A07.2' } },
  { '$': { code: 'A07.3' } },
  { '$': { code: 'A07.8' } },
  { '$': { code: 'A07.9' } } ] };
  
  
var result = data.subclass.map( (obj) => {
    return obj.$.code;
});

console.log(result);

关于javascript - 在 JavaScript 中序列化 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48321540/

相关文章:

javascript - 从另一个对象调用原型(prototype)方法

javascript - 使用带有语言环境的 moment.js 解析日期

c# - 将 JSON 结构解析为对象,但该结构可能包含不同的名称

Android JSON 服务器响应可能无效错误

java - 使用 JAXB 解码 xml 文件

javascript - 脚本加载后如何运行函数

javascript - 如何将变量传递给functions.php(Wordpress 站点)中的函数

javascript - 谷歌图表 : Date Error

xml - 如何在 XPath/XQuery 中获取所有后代?

javascript - document.evaluate 使用 iterateNext 返回 null