我正在尝试将一些XML转换为json

我这里有一个功能

var parseString = require('xml2js').parseString

   _.map(dataset, function(items) {
     return _.map(items, function(item) {
       cancel = parseString(item.XX_CANCEL, function(item) {return item;});
       dropdown = parseString(item.XX_VIEW, function(item) {return item;});
       fillOpen = parseString(item['XX_FILL OPEN'], function(item) {return item;});
       return item;
     });
   });


当我尝试执行它时,出现此错误

/home/mretana/Documents/Projects/capilleiraclickandgamblebackend/node_modules/mssql/node_modules/tedious/node_modules/babel-runtime/regenerator/runtime.js:493
        throw exception;
              ^
TypeError: Cannot read property 'toString' of null
    at Parser.exports.Parser.Parser.parseString ...


仅供您了解,例如,如果我删除parseString(...)并执行

cancel = item.XX_CANCEL;

console.log(cancel)
logs ---> <element><element_type>BASIC_CHECKBOX</element_type><element_call/><element_content>1</element_content></element>


它记录该XML元素,这就是为什么我要使用parseString进行记录的原因,

cancel = parseString(item.XX_CANCEL, function(item) {return item;});


那么,您认为这是怎么回事?

我需要做的就是将这些XML元素转换为JSON。

最佳答案

查看xml2js的API,很明显parseString使用function(err, res)的标准形式接受回调,而您使用的是function(item)形式。

10-05 21:07
查看更多