我使用以下代码将xml转换为json:
var parseString = require('xml2js').parseString;
var xml = "<root><param_name>Hello</param_name><param_entry> xml2js! </param_entry> </root>";
parseString(xml, {trim: true},function(err,result){
console.dir(JSON.stringify(result));
});它将返回以下结果-
{
"root":{
"param_name":[
"Hello"
],
"param_entry":[
" xml2js!"
]
}
}它返回as对象集合的值,即作为"param_name":[
"Hello" ].但我想把它作为一个简单的键和值形式。这就是我得到的JSON应该是-
{
"root":{
"param_name":
"Hello"
,
"param_entry":
" xml2js!"
}
}这里出了什么问题?
发布于 2017-03-15 13:29:52
解决方案是-为解析器使用{explicitArray:false}选项,如下所示:
var xml2js = require('xml2js');
var parser = new xml2js.Parser({explicitArray : false});
var xml = "<root><param_name>Hello</param_name><param_entry> xml2js! </param_entry> </root>";
parser.parseString(xml,function(err,result){
console.dir(JSON.stringify(result));
});根据xml2js的npm -默认情况下,它被设置为"true“--所以所有子节点都放在一个数组中。通过将其设置为"false“--如果子节点多次出现,它们将被添加到数组中。也就是说,存在多个标签。
https://stackoverflow.com/questions/42804620
复制相似问题