你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

[分享]WB-EIOT开发板移植rtthread系统的JSON软件包

[复制链接]
wbeast 发布时间:2019-7-30 11:32
      jSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
    rtthread物联网操作系统集成JSON软件包,可以通过ENV工具获取软件包。只需要几个指令,就可以完成JSON移植,非常方便。
1、 打开辅助开发工具env,输入配置指令:"menuconfig",选中JSON。保存后退出,输入:pkgs --update命令下载软件包,输入:scons –-targer=mkd5命令,编译工程。

164630ov4eh4viizh3mhhc.png
2、程序示例
  1. void json_examples(){
  2.         

  3.           cJSON * usr,*usr1,* Array,*usr2;
  4.            char *out;
  5.         
  6.   
  7.     usr=cJSON_CreateObject();   //创建JSON对象
  8.          cJSON_AddItemToObject(usr,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
  9.          cJSON_AddItemToObject(usr,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
  10.           out= cJSON_Print(usr);
  11.           rt_kprintf("\r\n%s\r\n",out);
  12.            free(out);//释放内存
  13.                  cJSON_Delete(usr);//删除JSON对象

  14.     usr=cJSON_CreateObject();   //创建JSON对象
  15.          cJSON_AddItemToObject(usr,"DeviceName",cJSON_CreateString("EIOT"));  //在对象中添加字符串类型参数
  16.          cJSON_AddItemToObject(usr,"DeviceValue",cJSON_CreateString("123456"));  //在对象中添加字符串类型参数
  17.           out= cJSON_Print(usr);
  18.           rt_kprintf("\r\n%s\r\n",out);
  19.           free(out);
  20.                  cJSON_Delete(usr);
  21.         
  22.         
  23.     usr=cJSON_CreateObject();   //创建JSON对象
  24.          cJSON_AddItemToObject(usr,"power",cJSON_CreateTrue()); //在对象中添加布尔类型参数
  25.          cJSON_AddItemToObject(usr,"power1",cJSON_CreateFalse());//在对象中添加布尔类型参数
  26.           out= cJSON_Print(usr);//json对象转换成字符串
  27.           rt_kprintf("\r\n%s\r\n",out);
  28.           free(out);//释放内存
  29.                 cJSON_Delete(usr);//删除JSON对象
  30.                
  31.                  //创建json数组对象
  32.                          Array = cJSON_CreateArray();
  33.                          usr1 = cJSON_CreateObject();
  34.                   cJSON_AddItemToArray(Array,usr1);
  35.                  cJSON_AddItemToObject(usr1,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
  36.             cJSON_AddItemToObject(usr1,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
  37.                   out= cJSON_Print(usr);//json对象转换成字符串
  38.             cJSON_Delete(usr);
  39.             rt_kprintf("\r\n%s\r\n",out);
  40.                          free(out);
  41.         

  42.         
  43.         
  44.            //json对象嵌套使用
  45.                    usr=cJSON_CreateObject();   //创建JSON对象
  46.                          Array = cJSON_CreateArray();
  47.                   cJSON_AddItemToObject(usr, "rows",Array );
  48.                          usr1 = cJSON_CreateObject();
  49.                          usr2 = cJSON_CreateObject();
  50.                   cJSON_AddItemToArray(Array,usr1);
  51.                          cJSON_AddItemToArray(Array,usr2);
  52.                                 
  53.                         cJSON_AddItemToObject(usr1,"power",cJSON_CreateTrue());//在对象中添加布尔类项参数
  54.             cJSON_AddItemToObject(usr1,"power1",cJSON_CreateFalse());
  55.          
  56.                   cJSON_AddItemToObject(usr2,"temp",cJSON_CreateNumber(22));  //在对象中添加数字
  57.             cJSON_AddItemToObject(usr2,"humi",cJSON_CreateNumber(22));  //在对象中添加数字
  58.          
  59.                   out= cJSON_Print(usr);//json对象转换成字符串
  60.             cJSON_Delete(usr);//删除JSON对象
  61.             rt_kprintf("\r\n%s\r\n",out);
  62.                          free(out);//释放内存
  63.         
  64. }
复制代码
3、实验现象,如下图所示。
TIM截图20190726160304.png 源码参考:https://www.stmcu.org.cn/module/forum/thread-621278-1-1.html里面的资料
收藏 评论4 发布时间:2019-7-30 11:32

举报

4个回答
andey 回答时间:2019-7-30 14:03:50
提示: 作者被禁止或删除 内容自动屏蔽
wangallenwang 回答时间:2019-8-8 15:44:25
wangallenwang 回答时间:2019-8-14 10:21:09
wangallenwang 回答时间:2019-8-23 10:53:33

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版