2012-07-28 48 views
1

我正在接收json-data,它是100%正確格式化的json數據。當動態接收Json時不能被解析(使用socket.io)

我的問題是,

當我運行下面的代碼它的工作原理:

var data = {"datas":[{"matts":{"active":"1","status":"off"},"config":null,"adapters":[]}}]}; 

console.dir(data); // it works. 

,但是當我收到socket.io相同的數據,如下面的代碼,它不工作:

_liveSock.on('sm', function(data) 
{ 
    console.log(data); // I am receiving the data correctly. 
    console.dir(data); // But I cant display the data. 
}); 

兩個代碼幾乎是相同的邏輯,只有第二個是動態接收的。

當我嘗試使用console.dir(data);在第二個代碼,它給出了這樣的錯誤:

there is no kind object 

(順便說一句,我使用的是Firefox/Firebug的。)

是否有另一種方法或方式來動態地使用JSON收到DATAS?

謝謝!

+0

您能否確保您發佈的內容能夠準確反映您真正嘗試過的內容? – Pointy 2012-07-28 23:46:11

+0

請提供您用於發送數據的代碼以及您在接收端從console.log(data)獲得的輸出 – 2012-07-28 23:57:47

回答

1

你不能使用console.dir(),直到你有解析的值。

console.dir(JSON.parse(data)); 

JSON設施在舊版瀏覽器中不可用。你可以找到解析器online

+0

console.dir(JSON.parse(data)); 它仍然說沒有友善的對象。在Firefox的最後一個版本 – 2012-07-28 23:52:24

+0

它在我的Firefox(14.0.1)中。 – Pointy 2012-07-28 23:53:32

+0

當你使用var data = .. etc的時候可以,但是當你動態接收的時候不會。 – 2012-07-28 23:54:18