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

【经验分享】STM32利用CJSON库生成和解析JSON格式数据

[复制链接]
STMCU小助手 发布时间:2022-4-21 21:00
一、解析JSON格式数据

  1. //需要解析的字符串
  2. char *str="{"action":"writePara","value":{"id":"1","frontId":"1","band485":"1200","bandCan":"10","sidewayTime":"10","sidwwaySync":"1","upDownTime":"10","upDownTimeSync":"1","hookMode":"electric","senseMode":"single","isStopCar":"1","originalIsStopCar":"1","isShiftLeft":"1","isShiftRight":"1","isShiftUp":"1","isShiftDown":"1","isRstData":"1"}}";
  3. int main(void)
  4. {        
  5.         cJSON *root;
  6.         cJSON *jsonAction;
  7.         cJSON *jsonRWAddr;

  8.         while(1)
  9.         {
  10.                 root=cJSON_Parse((const char *)str);
  11.                 jsonAction = cJSON_GetObjectItem(root,"action");  //获取动作
  12.                 if(strcmp(jsonAction->valuestring,"writePara")==NULL)        //写参数
  13.                 {
  14.                         jsonRWAddr = cJSON_GetObjectItem(root,"writeId");  //获取读的ID
  15.                         modbusReadWriteAddr = atoi16(jsonRWAddr->valuestring,10);                //将ID转为int
  16.                 }
  17.                 cJSON_Delete(root);
  18.                 cJSON_Delete(jsonAction);
  19.                 cJSON_Delete(jsonRWAddr);

  20.         }
  21. }
复制代码

二、生成字符串

  1. int main(void)
  2. {        
  3.         char *jsonValue;
  4.         cJSON *jsonCreat;
  5.         cJSON *jsonCreatValue;

  6.         jsonCreat = cJSON_CreateObject();//创建一个json对象
  7.         jsonCreatValue = cJSON_CreateObject();//创建一个json对象
  8.         
  9.         cJSON_AddItemToObject(jsonCreat, "action", cJSON_CreateString("readPara"));
  10.         cJSON_AddItemToObject(jsonCreatValue, "id", cJSON_CreateString("1"));
  11.         cJSON_AddItemToObject(jsonCreat, "value", jsonCreatValue);        

  12.         jsonValue=cJSON_Print(jsonCreat);//打印生成JSON格式数据
  13.         
  14.         cJSON_Delete(jsonCreat);
  15.         cJSON_Delete(jsonCreatValue);
  16.         printf("%s\r\n",jsonValue);
  17.         while(1)
  18.         {
  19.         
  20.         }

  21. }

  22. 生成的字符串
  23. {action:readPara,value{id:1}}

复制代码

三、CJSON使用注意点
解析生成字符串需要的堆栈比较大,需要把STM32的堆栈搞大一点


收藏 评论0 发布时间:2022-4-21 21:00

举报

0个回答

所属标签

相似分享

官网相关资源

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