我的代码如下所示:
var WebSocket = require('ws'),
ws = new WebSocket('wss://api.gemini.com/v1/marketdata/BTCUSD');
const getMarketUpdates = (req, res) => {
ws.on('message', function(message) {
console.log('received: %s', message);
res.json({
data: JSON.stringify(message.message)
})
});
}
我得到的输出如下所示:
{
"data": "\"{\\\"type\\\":\\\"update\\\",\\\"eventId\\\":1131320868,\\\"timestamp\\\":1501324222,\\\"timestampms\\\":1501324222132,\\\"events\\\":[{\\\"type\\\":\\\"change\\\",\\\"side\\\":\\\"bid\\\",\\\"price\\\":\\\"2702.14\\\",\\\"remaining\\\":\\\"0\\\",\\\"delta\\\":\\\"-0.12\\\",\\\"reason\\\":\\\"cancel\\\"}]}\""
}
现在我该怎样做才能使输出看起来干净?
答案 0 :(得分:4)
JSON.stringify
is not broken。您使用JSON.stringify
为data
提供字符串值,并将包含data
的对象传递到res.json
,然后获取该对象并对其进行编码,从而对数据进行双重编码它是JSON。
如果您希望data
成为消息,请不要使用JSON.stringify
并让res.json
执行此操作:
res.json({
data: message.message
})