我试图创建一个将xml转换为json的简单方法。我尝试使用javascript原型来尝试,因为我试图学习如何使用原型,因为我希望能够做一些像myXmlString.toJson();
我在下面的脚本中演示了xml字符串在方法中很好地转换为json对象,但是当我尝试调用该方法时,它是未定义的。
var parseString = require('xml2js').parseString; // Used to parse the returned xml (ick) to json (yum)
String.prototype.toJson = function() {
parseString(this, {explicitArray: false}, function (err, jsonResult) {
if(err) {
console.log('err');
console.log(err);
return err;
}
console.log('inside toJSON');
console.log(jsonResult); // <-- Prints a json object as expected
return jsonResult;
});
}
var mystring = '<parent><child>3</child></parent>';
console.log(mystring); // Prints an xml string
mystring.toJson(); // Should this convert the variable mystring to a json structure?
console.log(mystring); // Prints the xml string
console.log(mystring.toJson()); // Prints undefined. Why?
答案 0 :(得分:1)
在你的toJson方法中,你应该返回值parseString返回。目前,您只需执行parseString而不返回它返回的值。