jSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
rtthread物联网操作系统集成JSON软件包,可以通过ENV工具获取软件包。只需要几个指令,就可以完成JSON移植,非常方便。
1、 打开辅助开发工具env,输入配置指令:"menuconfig",选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。
2、程序示例
- void json_examples(){
-
- cJSON * usr,*usr1,* Array,*usr2;
- char *out;
-
-
- usr=cJSON_CreateObject(); //创建JSON对象
- cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22)); //在对象中添加数字
- cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22)); //在对象中添加数字
- out= cJSON_Print(usr);
- rt_kprintf("\r\n%s\r\n",out);
- free(out);//释放内存
- cJSON_Delete(usr);//删除JSON对象
- usr=cJSON_CreateObject(); //创建JSON对象
- cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT")); //在对象中添加字符串类型参数
- cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456")); //在对象中添加字符串类型参数
- out= cJSON_Print(usr);
- rt_kprintf("\r\n%s\r\n",out);
- free(out);
- cJSON_Delete(usr);
-
-
- usr=cJSON_CreateObject(); //创建JSON对象
- cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数
- cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数
- out= cJSON_Print(usr);//json对象转换成字符串
- rt_kprintf("\r\n%s\r\n",out);
- free(out);//释放内存
- cJSON_Delete(usr);//删除JSON对象
-
- //创建json数组对象
- Array = cJSON_CreateArray();
- usr1 = cJSON_CreateObject();
- cJSON_AddItemToArray(Array,usr1);
- cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22)); //在对象中添加数字
- cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22)); //在对象中添加数字
- out= cJSON_Print(usr);//json对象转换成字符串
- cJSON_Delete(usr);
- rt_kprintf("\r\n%s\r\n",out);
- free(out);
-
-
-
- //json对象嵌套使用
- usr=cJSON_CreateObject(); //创建JSON对象
- Array = cJSON_CreateArray();
- cJSON_AddItemToObject(usr, "rows",Array );
- usr1 = cJSON_CreateObject();
- usr2 = cJSON_CreateObject();
- cJSON_AddItemToArray(Array,usr1);
- cJSON_AddItemToArray(Array,usr2);
-
- cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数
- cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());
-
- cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22)); //在对象中添加数字
- cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22)); //在对象中添加数字
-
- out= cJSON_Print(usr);//json对象转换成字符串
- cJSON_Delete(usr);//删除JSON对象
- rt_kprintf("\r\n%s\r\n",out);
- free(out);//释放内存
-
- }
复制代码 3、实验现象,如下图所示。
源码参考:https://www.stmcu.org.cn/module/forum/thread-621278-1-1.html里面的资料
|