訪問JSON值我使用curl命令:無法從捲曲
curl -X POST -H "Content-Type: application/json" http://localhost:8081/creditcard -d '{"credit-card":"1234-5678-9101-1121"}'
在我的js文件,我有這樣的代碼塊,以獲得信用卡的價值:
request.on('data', function(data) {
var cc = 'credit-card';
var a = JSON.parse(data.toString());
console.log(a[cc]);
}
對於這個我得到:
undefined:1
'{credit-card:1234-5678-9101-1121}'
^
SyntaxError: Unexpected token '
at Object.parse (native)
at IncomingMessage.<anonymous> (<path>\ccserver.js:32:34)
at IncomingMessage.emit (events.js:107:17)
at IncomingMessage.Readable.read (_stream_readable.js:373:10)
at flow (_stream_readable.js:750:26)
at resume_ (_stream_readable.js:730:3)
at _stream_readable.js:717:7
at process._tickCallback (node.js:355:11)
所以我試圖用JSON.stringify如下:
request.on('data', function(data) {
var cc = 'credit-card';
var a = JSON.parse(JSON.stringify(data.toString()));
console.log(a[cc]);
}
但是,這是我所得到的:
undefined
undefined
然而,當我嘗試解析一個硬編碼的JSON字符串,它會確定:
var jsonString = '{"credit-card":"1234-5678-9101-1121"}';
var a = JSON.parse(jsonString);
console.log(a[cc]);
結果:
1234-5678-9101-1121
從這個json獲取數據的正確方法是什麼?
請告知 感謝
你爲什麼要調用'data.toString()'?這不是'串'嗎? – smnbbrv
@simon [''data'''chunk'](https://nodejs.org/api/stream.html#stream_event_data)默認爲'Buffer',除非['setEncoding()'](https:/ /nodejs.org/api/stream.html#stream_readable_setencoding_encoding)。 –
在JSON到達服務器之前,似乎正在使用雙引號。您使用哪個控制檯/終端/外殼來調用'curl'? –