JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript语言的一个子集,但采用完全独立于语言的文本格式,这些特性使得JSON成为理想的数据交换语言。
优点如下:
-
数据序列化: 在发送数据前,将复杂的数据结构(如对象或数组)转换(序列化)为JSON格式的字符串。这一点在Web开发中尤为重要,因为HTTP协议通常用于传输文本数据。
-
跨语言交换: JSON格式独立于任何编程语言,大多数现代编程语言都提供了解析JSON的工具。这意味着一个用Java编写的服务器可以发送JSON数据给一个用JavaScript编写的Web客户端,客户端可以轻松理解和处理这些数据。
-
API接口: 许多Web API使用JSON格式来提供公共接口,让开发者可以访问其数据和功能。这促进了不同服务之间的集成,因为开发者只需了解如何处理JSON数据即可与这些API交互。
-
网络效率: 相比其他数据表示方式(如XML),JSON通常更加紧凑,可以减少网络传输的数据量,因此通信更快。
-
易于解析和生成: JSON的结构简单,易于编程语言解析和生成,这使得基于JSON的数据传输在编程中易于实现。
在C++的网络通信中,JSON是很普遍的,尤其是写接口时,接口文档里普遍是JSON,简洁易于理解,还在用XML的,基本是过时的技术了。
1.与http通信时
与http通信时,在HTTP请求的上下文中,https://mp.csdnmm.net/mp_blog/creation/editor/139330424
是一个URL(统一资源定位符),它指向一个特定的网络资源
根据URL,就可以定位到发送请求的位置,从而传递到body中附带json参数给网页,或者根据指定接口的参数获取网页中的数据。
2.与tcp通信时
在tcp通信中,没有URL这种指定,所以在传递的json数据中,需要添加一个方法,用于接收这个tcp的客户端/服务器解析,从而区分请求的方法
如在一个心跳检测接口中tcp发送的json参数如下:
{"method": "heartbeatCheck","timeStamp": 94877257833
}
如在一个控灯接口中tcp发送的json参数如下:
{"method": "ControlLight","data": {"type": 1,"state": 0,"color": 2,"position": [{"row": 1,"column": 2}]}
}
然后相互通信的服务器/客户端就可以根据method这个参数,判断指定请求,就相当于URL了