JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript语言的一个子集,但采用完全独立于语言的文本格式,这些特性使得JSON成为理想的数据交换语言。

优点如下:

  1. 数据序列化: 在发送数据前,将复杂的数据结构(如对象或数组)转换(序列化)为JSON格式的字符串。这一点在Web开发中尤为重要,因为HTTP协议通常用于传输文本数据。

  2. 跨语言交换: JSON格式独立于任何编程语言,大多数现代编程语言都提供了解析JSON的工具。这意味着一个用Java编写的服务器可以发送JSON数据给一个用JavaScript编写的Web客户端,客户端可以轻松理解和处理这些数据。

  3. API接口: 许多Web API使用JSON格式来提供公共接口,让开发者可以访问其数据和功能。这促进了不同服务之间的集成,因为开发者只需了解如何处理JSON数据即可与这些API交互。

  4. 网络效率: 相比其他数据表示方式(如XML),JSON通常更加紧凑,可以减少网络传输的数据量,因此通信更快。

  5. 易于解析和生成: 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了

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐