我寫了一個簡單的node.js程序來演示我遇到的問題。簡單的POST請求到node.js的響應「意外的輸入結束」消息
鑑於以下Node.js的程序:
var http = require('http');
http.createServer(function (req, res) {
// simple repro for json deserializaiton error cause by right quote character '’'
var json = { 'foo': 'bar’s answer' };
var write = JSON.stringify(json);
res.writeHead(200, { 'Content-Type': 'application/json', 'Content-Length': write.length });
res.end(write);
}).listen(8085, '127.0.0.1');
當我使用Chrome的高級REST客戶端張貼到這一點,我得到一個200 OK響應,但響應的內容的JSON選項卡中,出現了「意外的輸入結束」,而不是解析出的json。
在原始標籤,字符串「{」 foo「的:」顯示欄的回答」,使其成爲明顯的,爲什麼JSON無法解析(它缺少結束的‘}’)
如果。我從原始對象中刪除''',響應在返回時解析得很好。
任何想法爲什麼一個簡單'''導致json失敗解析?我遇到了同樣的問題在我測試中的各種其他字符。
果然,這似乎解決了它。謝謝,先生,你既是學者又是紳士:) –