2014-07-15 48 views
0

如何向客戶端發送已轉換爲JSON對象的結果(xml)? 我想將結果發送回線168發回JSON?

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  } 
+0

你應該在解釋你的代碼時更精確一些。我想你想發回你的'結果'(第168行),這是你的XML的JS對象表示? – dgiugg

+0

正確。我需要發回已轉換爲JSON的XML。我需要將它作爲JSON對象發回。 – ConfusedDeer

+0

我認爲你應該編輯你的問題,並在你的代碼中明確指出你要發送的結果在168行。另外,請參閱下面的答案。 – dgiugg

回答

1

小精度:沒有JSON對象,它是對象文本(一個JS對象),無論是JSON字符串。所以你的result是一個對象。您將需要將其轉換爲JSON字符串,發送它,並讓您的客戶端將其轉換回對象。寫在行169:

res.write(JSON.stringify(result)); 
在客戶端

然後:JSON.parse(<responseString>)將是您的響應對象的文字。

請參閱https://www.npmjs.org/package/xml2js瞭解更多信息。

+0

謝謝,我今晚晚些時候會試一試。 – ConfusedDeer

+0

不知道這是否工作。最終,當我解決其他問題時,我會進行更新。 – ConfusedDeer

+0

它是一條漫長的道路,這是最後一站。謝謝! – ConfusedDeer