2017-08-09 58 views
0

我試圖通過HTTP Node.js模塊向RESTful服務器執行請求。Javascript - Ajax在JSON響應中添加額外逗號

因爲響應是相當巨大的(64塊,100 KB左右),HTTP模塊合併大塊成這樣一個字符串響應:

res.setEncoding('utf8'); 

    res.on('data', (chunk) => { 
    index ++; 
    body.push(chunk); 
    }); 

    res.on('end',() => { 
    console.log("===> CHUNKS COUNTER: ".red+index); 
    } 

但是,儘管這種「默認」的做法,身體內容幾乎沒有misplaces逗號,像這樣:

}},{"ty,pe" 

insted的來:

}},{"type" 

有沒有人可以幫助我?感謝advace!

回答

0

不要將塊推到身體。塊是串,只是連接它們。

body += chunk 

然後你滿弦解析成JSON:

JSON.parse(body) 
+0

哇,我沒想到的是這樣的一個失誤就可能產生這樣的錯誤! 我解決了你的幫助!非常感謝! 也感謝Yury爲他的答案btw。 – AppleInside

0

它看起來像body是一個數組。如果你想將它轉換爲一個沒有逗號的字符串,使用body = body.join('')

res.on('end',() => { 
    body = body.join('') 
    console.log("===> CHUNKS COUNTER: ".red+index); 
}