JSON数据有两种形式,对象形式和字符串形式。它说JSON用于序列化数据并通过网络发送。序列化意味着对数据进行字符串化并发送。我的问题是 - 是否需要对数据进行字符串化并仅发送数据?为什么不发送JSON对象,这不可能吗?字符串化和发送是否有任何优势?
答案 0 :(得分:4)
序列化没有“优势”,它是必需的。您无法通过网络发送对象。它们需要转换为字节序列并在另一端重构。
为什么不发送JSON对象,这不可能吗?
不,不是。事实上,首先没有“JSON对象”这样的东西。 JSON是数据的文本表示。内存中的对象不是JSON,即使它是使用您可能用于编写JSON的相同字符在源代码中声明的,或者它是以JSON文档开头的。
JSON是文字。字符串'{ "x" : "y" }'
是JSON。一旦您的浏览器对其进行了评估,它就不是JSON,而是一个JavaScript对象。
答案 1 :(得分:2)
" JSON对象"看起来像在电线上? ......我等了......
答案是"对象"这些是复杂的数据结构,它们存在于计算机的存储器中,并且通常只有在它们处于这种状态时才有意义。如果要将它们从内存中取出并将它们存储在磁盘上或通过网络发送它们,则需要将它们放在指定的格式中,以便在另一端再次读取。那是什么序列化。 JSON是一种可能的序列化格式,它可以表示一些复杂的数据结构,包括数组和对象。还有其他许多用于许多不同目的的格式,从特定于某种语言或环境的XML到二进制转储。
答案 2 :(得分:-1)
试试socket.io ..
我爱它..
///服务器
socket.send(" myMSG",{key1:" HelloWorld"});
/// Client
socket.on("myMSG", function(data){
console.log(data.key1);
});
// stringify
JSON.stringify({key1: "HelloWorld"})
最好的问候