【问题标题】:Json can not be parsed when received dynamically (using socket.io)动态接收时无法解析Json(使用socket.io)
【发布时间】:2012-07-28 23:42:54
【问题描述】:

我正在接收 json-datas,它是 100% 正确格式的 json 数据。

我的问题是,

当我运行以下代码时,它可以工作:

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 数据吗?

谢谢!

【问题讨论】:

  • 您能否确保您发布的内容准确反映了您真正尝试过的内容?
  • 请提供您用于发送数据的代码以及您从接收端的console.log(data)得到的输出

标签: javascript jquery json socket.io


【解决方案1】:

解析该值之前,您不能使用console.dir()

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

JSON 工具在旧版浏览器中不可用。你可以找到解析器online

【讨论】:

  • console.dir(JSON.parse(data));它仍然说没有善良的对象。在最新版本的 firefox 上
  • 它在我的 Firefox (14.0.1) 中。
  • 当你使用 var data=.. 等时是的。但当你动态接收时不是。
  • 字符串来自哪里并不重要。字符串就是字符串。
  • 澄清一下:JSON.parse('{"name": "value"}') 在最新版本的 Firefox 中运行良好。
猜你喜欢
  • 1970-01-01
  • 2015-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-22
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多