2017-07-29 2 views
-1

Mein Code ist wie unten dargestellt:JSON.stringify nicht geben Daten in der richtigen Format

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) 
     }) 
    }); 
} 

Die Ausgabe, die ich erhalte ist wie folgt:

{ 
    "data": "\"{\\\"type\\\":\\\"update\\\",\\\"eventId\\\":1131320868,\\\"timestamp\\\":1501324222,\\\"timestampms\\\":1501324222132,\\\"events\\\":[{\\\"type\\\":\\\"change\\\",\\\"side\\\":\\\"bid\\\",\\\"price\\\":\\\"2702.14\\\",\\\"remaining\\\":\\\"0\\\",\\\"delta\\\":\\\"-0.12\\\",\\\"reason\\\":\\\"cancel\\\"}]}\"" 
} 

Nun, was soll ich tun Ausgabe sauber aussehen lassen?

+0

Ich habe deine Bearbeitung rückgängig gemacht. Unter SO dürfen Sie die Frage nicht so bearbeiten, dass vorhandene Antworten ungültig werden. Aber wenn der zweite Teil Ihrer Bearbeitung (die Ausgabe, die am Ende zitiert wird) das ist, was Sie mit Ihrem ursprünglichen Code bekommen (es ist das, was ich erwarten würde), ist es in Ordnung * diesen * Teil zu bearbeiten. –

Antwort

4

JSON.stringify is not broken. Sie codieren Ihre Daten doppelt, indem Sie JSON.stringify verwenden, um data einen Zeichenfolgenwert anzugeben, und das Objekt, das data enthält, an res.json übergeben, wodurch das Objekt übernommen und als JSON codiert wird.

Wenn Sie data die Nachricht sein, verwenden Sie einfach nicht JSON.stringify und lassen res.json es tun:

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

Ich tat, wie Sie erwähnt haben, aber es gibt mir Ausgabe '{}'. Deshalb habe ich mit res.josn nur mit "message" geschrieben. Bitte sehen Sie meine aktualisierte Frage –

+0

@MrugeshThaker: Wenn 'message.message' enthält, was Sie gezeigt haben, wird das oben genannte definitiv nicht nur' {} 'ausgeben. (Edit: Habe es gerade vor Ort getestet, um extra sicher zu sein. :-)) –

Verwandte Themen