发送回JSON?

时间:2014-07-15 05:16:18

标签: json node.js http express

如何将已转换为JSON对象的结果(xml)发送回客户端? 我想在第168行发回结果。

    153 var str= '';
    154
    155     callback = function(response) {
    156                                 //      var str = '';
    157
    158                                         //another chunk of data has been recieved, so append it to `str`
    159                                 response.on('data', function (chunk) {
    160                                         str += chunk;
    161                                                 } );
    162
    163                   //the whole response has been recieved, so we just print it out here
    164                                         response.on('end', function () {
    165                                         console.log("******************"+str+"*********************");
    166                                         var parseString = require('xml2js').parseString;
    167                                         //var xml = "<root>Hello xml2js!</root>"
    168                                         parseString(str, function (err, result) {
    169                                         console.dir(result);
    170                                         });
    171
    172                                 //      res.writeHead(200, {'Content-Type': 'text/plain'});
    173                                 //      res.write(str);
    174                                         });
    175                                    }
    176
    177                     
    178
    179                http.request(url, callback).end();
    180
    181
    182     //   console.log("---------------------"+str+"-----------------------------");
    183
    184
    185
    186   //      console.log(js2xmlparser("address",location));
    187
    188 //        res.write(str);
    189 res.end();
    190
    191
    192     }

1 个答案:

答案 0 :(得分:1)

有点精确:没有JSON对象,它是一个Object文字(一个JS对象),或者是一个JSON字符串。所以你的result是一个对象。您需要将其转换为JSON字符串,发送它,并让您的客户端将其转换回Object。写在第169行:

res.write(JSON.stringify(result));

然后在您的客户端:JSON.parse(<responseString>)将成为您的回复对象文字。

有关详细信息,请参阅https://www.npmjs.org/package/xml2js