将xml数据作为json保存到mongodb

时间:2019-02-22 21:36:05

标签: node.js mongodb

我希望将数据以图片中的给定格式保存到mongodb中。 我在txt文件中有xml数据,我已使用xml2json包将其转换为json。但是,当我尝试将其保存到数据库时,它像字符串一样保存。 但我希望将其另存为json。

下面是我的代码

var mongoose = require("mongoose");
    mongoose.connect("mongodb://localhost:27017/files");

 var db = mongoose.connection;

 db.on("error", console.error.bind(console, "connection error"));
 db.once("open", function(callback) {
     console.log("Connection succeeded.");
});


var convert = require('xml-js');
var xml = require('fs').readFileSync('./abc.txt', 'utf8');

var result = convert.xml2json(xml,{compact: true, spaces: 4});


 db.collection('files').insert({result}, function(error, record){
 if (error) throw error;
 console.log("data saved");
  });

Like this format

2 个答案:

答案 0 :(得分:0)

也许您拥有的是JSON字符串,因此它将存储为字符串。

尝试使用-keep class com.google.gson.** { *; } 并保存Javascript对象。 只是一个想法... HTH

答案 1 :(得分:0)

https://www.npmjs.com/package/xml-js上的文档说:

  

要将XML文本转换为JavaScript对象,请使用xml2js()。要将XML文本转换为JSON文本,请使用xml2json()

因此,看来silverfighter是正确的:您可以使用JSON.parse对其进行修复。或者,您可以只使用convert.xml2js。 (无论哪种方式,spaces: 4均无效。)

我想您需要做更多的处理才能获得猫鼬接受的javascript对象。但是您还没有告诉我们xml文件的格式,无论如何我都不知道猫鼬,所以在这一部分我无能为力。