javascript - 从 websocket 过滤 json 对象/值并打印到控制台日志

标签 javascript node.js json websocket

尝试将 Websocket 提供的 json 数据中的值打印到控制台日志

下面的代码将所有 json 数据从 websocket 打印到控制台日志。

// require ws
const WebSocket = require('ws');


//messsage sent to  ws server
var msg = 
    {"jsonrpc": "2.0",
     "method": "public/subscribe",
     "id": 42,
     "params": {
        "channels": ["price_index.btc_usd"]}
    };

// WS connection url
var ws = new WebSocket('wss://website.com/ws/api/v2');

//ws response
ws.onmessage = function (e) {

    // do something with the notifications...

    console.log('server : ', e.data);

};

//stringify json data
ws.onopen = function () {
    ws.send(JSON.stringify(msg));
};

预期结果:

server :  5457.21

server :  5457.19

server :  5457.15

实际结果:

server :  {"jsonrpc":"2.0","method":"subscription","params":{"channel":"deribit_price_index.btc_usd","data":{"timestamp":1556209117657,"price":5457.21,"index_name":"btc_usd"}}}
server :  {"jsonrpc":"2.0","method":"subscription","params":{"channel":"deribit_price_index.btc_usd","data":{"timestamp":1556209117657,"price":5457.19,"index_name":"btc_usd"}}}

最佳答案

JSON.parse()

这是你如何使用它:

    //This will turn it into an object you can navigate with '.params.data.price'
    try {
        console.log('server: ', JSON.parse(e.data).params.data.price);
    } catch {}

关于javascript - 从 websocket 过滤 json 对象/值并打印到控制台日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854147/

相关文章:

javascript - 如何将id添加到@Html.DisplayFor参数?

javascript - 如何在 Locomotive Js 中设置 CoffeeScript?

node.js - Mongodb + 使用最后一个字段数据进行分组

javascript - 当数据为零时,Flot 饼图呈现图例但不呈现空图表

python json dump,如何首先指定 key ?

ios - 如何在 Swift 中显示 Json 文件中的多个 TableView?

javascript - 这种模式是否会导致闭包中的循环引用?

javascript - 创建全局 Backbone.js 错误 View

javascript - 根据返回新数组javascript的另一个数组过滤对象数组

javascript - Mocha + Sequelize 超时