欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 嵌入式硬件篇---JSON通信以及解析

嵌入式硬件篇---JSON通信以及解析

2025/9/23 23:59:04 来源:https://blog.csdn.net/2301_79556402/article/details/146784595  浏览:    关键词:嵌入式硬件篇---JSON通信以及解析

文章目录

  • 前言
  • 一、JSON特点
    • 语法简单
    • 数据格式灵活
    • 轻量化
    • 跨语言使用
  • 二、JSON数据结构
    • 对象
    • 数组
  • 三、JSON在单片机之间通信的应用
    • 数据封装与传输
  • 四、JSON示例代码
  • 五、JSON在上位机与单片机之间通信的应用
    • 数据交互
  • 六、JSON示例代码
  • 七、JSON解析与生成
    • 解析
    • 生成
  • 八、Python中的数据解析
    • 1.字符串解析
      • 1.1整数
      • 1.2浮点数
      • 1.3布尔数
      • 1.4JSON格式字符串
      • 1.5CSV格式字符串
    • 2.字节解析
      • 2.1解析为整数
      • 2.2解析为字符串
    • 3.列表解析
      • 3.1解析嵌套列表
    • 4.字典解析
      • 4.1解析嵌套字典
    • 5.XML 解析
    • 6.自定义数据类型解析


前言

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在单片机之间、上下位机之间的通信中被广泛应用。


一、JSON特点

语法简单

语法简洁:JSON 的语法基于 JavaScript 的对象和数组字面量表示法,非常直观和简洁。它使用键值对来表示数据,易于阅读和编写。

数据格式灵活

数据格式灵活:支持多种数据类型,包括字符串、数字、布尔值、数组、对象等,可以方便地表示复杂的数据结构。

轻量化

轻量级:相比其他一些数据交换格式(如 XML),JSON 的数据量较小,在网络传输和存储方面具有优势,能够有效减少通信带宽和存储空间的占用。

跨语言使用

跨语言支持:几乎所有的编程语言都提供了对 JSON 的解析和生成支持,这使得它在不同类型的单片机和上位机(如 PC、手机等)之间进行数据交换时非常方便,无需考虑语言差异。

二、JSON数据结构

对象

对象:由花括号 {} 包围,包含一系列键值对。键是字符串,值可以是任意数据类型。例如:{“name”: “John”, “age”: 30, “isStudent”: false}。

数组

数组:由方括号 [] 包围,包含一系列元素,元素可以是任意数据类型。例如:[1, 2, 3, “four”, true]。

三、JSON在单片机之间通信的应用

数据封装与传输

数据封装与传输:单片机通常资源有限,JSON 的轻量级特性使其成为一种理想的数据格式。当多个单片机之间需要进行数据交互时,例如传感器节点与控制节点之间的通信,传感器节点可以将采集到的数据(如温度、湿度、光照强度等)封装成 JSON 格式的字符串,然后通过串口、SPI 等通信接口发送给控制节点。控制节点接收到数据后,再解析 JSON 字符串,获取其中的具体数据值,进行相应的处理。

四、JSON示例代码

以 C 语言为例,在单片机中使用 cJSON 库来处理 JSON 数据。假设要发送一个包含温度和湿度数据的 JSON 消息,代码如下:

#include "cJSON.h"// 模拟采集到的温度和湿度数据
float temperature = 25.5;
float humidity = 60.0;int main() {// 创建一个JSON对象cJSON *root = cJSON_CreateObject();// 向JSON对象中添加温度和湿度数据cJSON_AddNumberToObject(root, "temperature", temperature);cJSON_AddNumberToObject(root, "humidity", humidity);// 将JSON对象转换为字符串char *json_string = cJSON_Print(root);// 这里可以通过串口等方式将json_string发送出去// 释放内存cJSON_Delete(root);free(json_string);return 0;
}

五、JSON在上位机与单片机之间通信的应用

数据交互

数据交互:上位机(如 PC 端的应用程序或手机 APP)与单片机之间经常需要进行数据交互。例如,上位机向单片机发送控制指令,或者从单片机获取传感器数据、设备状态等信息。JSON 格式可以方便地对这些数据进行封装和传输。上位机将指令或请求数据封装成 JSON 格式发送给单片机,单片机解析 JSON 数据并执行相应操作,然后将结果以 JSON 格式返回给上位机。上位机再解析返回的 JSON 数据,进行显示或进一步处理。

六、JSON示例代码

示例代码:在 Python 中使用 json 模块处理 JSON 数据,与单片机进行通信(假设通过串口与单片机通

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com