2012-12-07 79 views
0

我試圖閱讀JSON對象通過D3S庫可視化的WebSocket。我只是檢查瀏覽器是否正確接收JSON。這是代碼:D3返回沒有JSON對象

ws = new WebSocket("ws://localhost:8888/dh"); 

     ws.onmessage = function(evt) 
     { 
     d3.json(
     JSON.parse(evt.data), 
     function (jsondata) { 

     console.log(jsondata); 

     var data = jsondata.map(function(d) { return d.Value; }); 
     console.log(data); 

      }); 
     } 

但是當我檢查控制檯登錄它給了我這些錯誤:

[19:15:36.434] TypeError: jsondata is null @ http://localhost:8888/static/anEx.js:21 

和執行console.log(數據)爲空。

這裏有什麼不正確?

感謝

回答

1

d3.json是用來做返回JSON響應HTTP請求。

您已經擁有WS消息處理程序中的數據,因此無需再發出其他請求。只要這樣做:

ws.onmessage = function(evt) { 
    var jsondata = JSON.parse(evt.data); 
    console.log(jsondata); 
    // handle data ... 
} 
+0

感謝您的回覆。我試過了,它給了我一個錯誤:[19:32:57.166] TypeError:jsondata.map不是一個函數@ http:// localhost:8888/static/anEx.js:27 – user94628

+0

是的,那不是一個JS對象的有效調用。如果您將underscore.js作爲依賴項,請使用['_.map'](http://underscorejs.org/#map)。 –

+0

感謝您的幫助,我通過數據獲取。 – user94628