2017-07-29 10 views
-1

私のコードは以下の通りです:JSON.stringifyは、適切な形式でデータを与えるものではありません

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

私はあなたの編集をロールバックしました。 SO上では、既存の回答を無効にするように質問を編集することはできません。しかし、編集の2番目の部分(最後に引用された出力)が元のコードで得られたもの(それが私が期待しているもの)だったら、その部分を編集しても問題ありません。 –

答えて

4

JSON.stringify is not brokenJSON.stringifyを使用してdataに文字列値を渡し、dataを含むオブジェクトをres.jsonに渡します。これはそのオブジェクトを受け取り、JSONとしてエンコードします。

あなたはdataメッセージになりたい場合は、単にJSON.stringifyを使用してres.jsonはそれを行うことはできません。

res.json({ 
    data: message.message 
}) 
+0

あなたが言及したように、私は '{}'を出力しています。だから、私はres.josnで 'message'だけを書いています。更新された質問 –

+0

@MrugeshThaker: 'message.message'にあなたが示したものが含まれている場合、上記は明らかに' {} 'を出力しません。 (編集:ちょうどそれをローカルで証明しました。 –

関連する問題