关于JSON的几个疑惑? JSON的序列化和跨语言传输
1、JSON是否适合大数据量的传输?
目前是用商定好的协议,以二进制流的方式传输到对方,对方再根据协议从二进制流中解析出数据。这种方式的坏处特别明显,第一就是经常出错,经常因为双方没有协商清楚,或者因为协议变更没有及时通知到各方等而出现错误,以及因为没有详细的协议文档(以头文件定义的结构体当作文档了),所以新人很难上手。所以现在想用通用的成熟的协议来代替我们自己的协议,开发和维护都比较好。
但是还有有几个疑惑,希望大家能帮忙回答和分析一下:
1、JSON适合大数据传输吗?我们目前是CS模式,未来还有BS模式,服务器和客户端之间的数据大部分每一帧都不大,但是有个功能客户端请求波形数据,这个数据就比较大,最糟糕的可能达到20多万点(目前每个点是4字节二进制流)。
2、数据传输 JSON数据 比 二进制流数据是不是体积大很多?
3、客户端(c#)和服务端(c)使用的是不同的语言开发,那么两边用不同的JSON解析库,会有什么问题吗?
4、都知道JSON因为是字符型的所以体积才大,那有没有二进制型的JSON呢
另外 如果JSON不适合大数据量传输,那么我们就考虑将数据二进制序列化,然后传输到对方再反序列化。这里又又几个疑惑了:
1、客户端和服务端用的语言不同,两边用的是不同的序列化库会不会反序列出来的结果就不一样了。
2、如果我的对象里面带有指针,指向别的数据,那么这个对象二进制序列化,那指针指向的内容能序列化大到数据流当中吗?
反序列之后,指针指向的内容还在吗?