如何从JSON转换为XML

我需要将这个库转换成一些JSON到XML,我需要这样做,以便发送一些数据到我正在处理的post请求数据库。

这是req.body返回的

 { DealerName: 'amrcl', CardId: '123', Nickname: 'mkm123', Picture: 'http://lorempixel.com/150/150/', Active: '1', LegalId: '1', TypeId: '1' } 

是dynamic数据。 让我告诉你的代码

 export default function (req, res) { try { const connection = new sql.Connection(spConfig, function spConnection (errSpConnection) { const request = connection.request(); if (errSpConnection) { res.status(401); } request.input('Dealer_Param', sql.VarChar(1000), req.body); request.input('param_IS_DEBUG', sql.Bit, null); request.output('output_IS_SUCCESSFUL', sql.Bit); request.output('output_STATUS', sql.VarChar(500)); request.execute('[mydbo].[StoredProcedure]', function spExecution (errSpExecution, dataset) { connection.close(); if (errSpExecution) { res.status(401); } else { if (request.parameters.output_IS_SUCCESSFUL.value) { res.status(200).json({ success : 'New dealer successfully inserted.', }); } } }); }); } } 

即用于mssql模块的 Stored Procedure方法。

正如你看到上面的代码,有一个失败的错误,因为在request.input('Dealer_Param', sql.VarChar(1000), req.body); 我在问题开始时发送JSON粘贴。 但是,如果不是req.body我把这个XML与虚拟数据'<Dealers><Detail DealerName = "TESTING123" CardId = "1222" NickName = "tester123" Active = "1" LegalId = "16545" TypeId = "1"></Detail></Dealers>'然后一切正常,因为数据库需要接收XML。

那么,你有什么build议,我应该怎么做把JSON数据作为XML?

我只是加载json2xml库…

  • 安装$ npm install json2xml

  • 在你的代码中导入模块: var json2xml = require("json2xml");

然后将json转换为xml,如下所示:

 var key, attrs=[]; for (key in req.body) { if (req.body.hasOwnProperty(key)) { var obj = {}; obj.key = req.body.key; attrs.push(obj); } } var dealerXml = json2xml({dealer:req.body, attr:attrs}, { attributes_key:'attr'}); request.input('Dealer_Param', sql.VarChar(1000), dealerXml);