格式化值,并把它们,而不是旧的
我在Node服务中有这个function
pendingBetsForCustomer: function(params) { return new Promise(function(fullfill, reject) { var cancel, view, fillOpen, connection = new sql.Connection(sails.config.connections.myConnection, function(err) { if (err) { reject(err); } var request = connection.request(); decorateRequestParams(request, params); request.execute('[SP_NAME].[spREPORTS]', function(err, dataset) { if (err) { reject(err); } _.map(dataset, function(items) { return _.map(items, function(item) { cancel = item.XX_CANCEL; fillOpen = item.XX_FILL_OPEN; parseString(cancel, function(err, res) { cancel = res; }); parseString(fillOpen, function(err, res) { fillOpen = res; }); }); }); _.forEach(dataset, function(report) { console.log(report); //see below what it returns fullfill(report); }); }); }); }); }
在console.log(report)
我得到这样的东西
[ { BET: 57630343, CUSTOMER: 181645, SPORT: 'MLB', XX_FILL_OPEN: '<xxfillopen xml>...</xxfillopen xml>', XX_CANCEL: '<xxcancel xml>...</xxcancel xml>' }, ... ]
那些以XX_
开头的道具是我需要变成JSON的XML元素,你可以在上面看到(使用xml2js)
_.map(dataset, function(items) { return _.map(items, function(item) { cancel = item.XX_CANCEL; fillOpen = item.XX_FILL_OPEN; parseString(cancel, function(err, res) { cancel = res; }); parseString(fillOpen, function(err, res) { fillOpen = res; }); }); });
如果你看到上面,我已经cancel
和fillOpen
现在是json而不是XML,我所需要的是放置取代XX_CANCEL: '<xxcancel xml>...</xxcancel xml>
认为取消是与JSON格式的对象和填充打开相同,如下所示:
{XX_CANCEL: cancel}
我期待着这样的事情
[ { BET: 57630343, CUSTOMER: 181645, SPORT: 'MLB', XX_FILL_OPEN: //PUT HERE THE NEW ATTR IN JSON FORMAT, XX_CANCEL: //PUT HERE THE NEW ATTR IN JSON FORMAT },... ]
好的,现在我已经有了以XX_
格式开头的道具,那么我该怎么做才能把这些新格式化的道具replace成XML格式的旧格式呢?
试试你的地图function:
_.map(dataset, function(items) { return _.map(items, function(item) { parseString(item.XX_CANCEL, function(err, res) { item.XX_CANCEL = res; }); parseString(item.XX_FILL_OPEN, function(err, res) { item.XX_FILL_OPEN = res; }); }); });
这应该用分析的JSON数据replacexmlstring。