JSON数据有两种形式,对象形式和字符串形式。它说JSON用于序列化数据并通过网络发送数据。序列化意味着将数据串行化并发送出去。我的问题是-是否需要将数据串行化并只发送它?为什么不发送JSON对象,这是不可能的吗?字符串注册和发送有什么优势吗?
发布于 2014-12-30 05:42:19
序列化没有什么“优势”,它是必需的。您不能通过网络发送对象。它们需要转换为字节序列,并在另一端重新构建。
为什么不发送
对象,这是不可能的吗?
不,不是的。事实上,根本就没有"JSON对象“这回事。JSON是数据的文本表示形式。内存中的对象不是JSON,即使它是在源代码中声明的,使用的字符与编写JSON时使用的字符相同,或者是作为JSON文档启动的。
JSON是文本。字符串'{ "x" : "y" }'
为JSON。一旦您的浏览器对其进行了评估,它就不是JSON,而是一个JavaScript对象。
发布于 2014-12-30 05:43:18
网络上的“JSON对象”是什么样子的?我等..。
答案是“对象”之类的是复杂的数据结构,它们驻留在计算机的内存中,通常只有当它们处于这种状态时才有意义。如果您想要将它们从内存中取出并存储在磁盘上,或者通过网络发送它们,您需要将它们放入指定的格式,以便在另一端可以再次读取。这就是序列化的含义。JSON是一种可能的序列化格式,它可以表示有点复杂的数据结构,包括数组和对象。还有用于许多不同目的的其他这样的格式,从XML到特定于特定语言或环境的二进制转储。
发布于 2014-12-30 06:17:44
让socket.io试一试..
我喜欢它..。
/// Server socket.send("myMSG", {key1:"HelloWorld"});
/// Client
socket.on("myMSG", function(data){
console.log(data.key1);
});
// stringify
JSON.stringify({key1: "HelloWorld"})
诚挚的问候
https://stackoverflow.com/questions/27700128
复制相似问题