我在使用express-xml-bodyparser
解析它的快速服务器中使用XML,但结果对象基本上无法使用。
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']
或一些简单的方法如何将其转换为此数组?
答案 0 :(得分:1)
您可以将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);
&#13;
答案 1 :(得分:0)
如果你想将json转换成一个对象,那么可能就像......
var arr = Object.keys(json).map(function(x) { return obj[x] });
使用jQuery
var arr = $.map(json, function(x) { return x});