当前位置: 首页 > news >正文

和城乡建设部网站平面设计可以做网站?

和城乡建设部网站,平面设计可以做网站?,家在龙岗,一品猪网站开发目录 前言 一、JSON和cJson 二、cJSON是如何表示JSON数据的 三、如何封装完整的JSON数据 1. 先将串口打通#xff0c;方便电脑查看log日志。 2. 增加cjson.c文件#xff0c;已经在main.c中 3. 准备打包如下的JSON包 4. 代码部分#xff0c;先将几个部分初始化指针 …目录 前言 一、JSON和cJson 二、cJSON是如何表示JSON数据的 三、如何封装完整的JSON数据  1. 先将串口打通方便电脑查看log日志。 2. 增加cjson.c文件已经在main.c中 3. 准备打包如下的JSON包 4. 代码部分先将几个部分初始化指针 5. 创建链表 6. 我们查看添加的是否正确可以将链表通过串口打印出来。 7. 效果如下 四、解包 五、总结 (*︶)创作不易期待你们的 点赞、收藏和评论喔。  前言 在使用MQTT传输数据的时候经常使用到JSON包来进行数据的交互这篇文章讲一下该如何使用。 一、JSON和cJson JSON全称 JavaScript Object Notation轻量级的数据格式。cJSON是一个用c语言编写的JSON数据解析器超级轻便可以移植单文件MIT源协议。 cJSON的源码文件只有两个 cJSON.c cJSON.h 下载地址可以在github下载地址如下 GitHub - DaveGamble/cJSON: Ultralightweight JSON parser in ANSI C  将这两个文件下载之后添加到项目中其它.C文件调用的时候需要包含头文件cJSON.h即可文件在MDK中的位置如下 二、cJSON是如何表示JSON数据的 cJSON是用一个结构体来表示一个JSON数据定义在cJSON.h中查看如下源码 /* The cJSON structure: */ typedef struct cJSON {/* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */struct cJSON *next;struct cJSON *prev;/* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */struct cJSON *child;/* The type of the item, as above. */int type;/* The items string, if typecJSON_String and type cJSON_Raw */char *valuestring;/* writing to valueint is DEPRECATED, use cJSON_SetNumberValue instead */int valueint;/* The items number, if typecJSON_Number */double valuedouble;/* The items name string, if this item is the child of, or is in the list of subitems of an object. */char *string; } cJSON; 不是存贮整片的JSON数据而是按照每条数据进行存储的。使用next指针和prev指针进行链表存储整片的JSON数据。 三、如何封装完整的JSON数据  说了这么多我们实际操作一下找一块STM32F开发板测试一下。 1. 先将串口打通方便电脑查看log日志。 uart_init(115200); 2. 增加cjson.c文件已经在main.c中 #include cJSON.h 3. 准备打包如下的JSON包 {我的名字: 老刘,公众号: 数独机,年龄: 11,性别: 男,电话: 186,地址: 一般人不告诉,我是嵌套的cJSON: {号码: 9527,传真: 5510,淘宝店: This熏},我是嵌套的数组: [{我是奇数循环: 0}, {我是偶数循环: 12365}, {我是奇数循环: 2}, {我是偶数循环: 12365}, {我是奇数循环: 4}] } 4. 代码部分先将几个部分初始化指针 cJSON* main_root NULL;cJSON* main_m_root NULL;cJSON* main_l_root NULL;cJSON* objNULL;char* response_str NULL; 5. 创建链表 main_root cJSON_CreateObject(); 豪横的在链表中添加节点 cJSON_AddStringToObject(main_root, 我的名字, 老刘);cJSON_AddStringToObject(main_root, 公众号, 数独机);cJSON_AddNumberToObject(main_root, 年龄, 11);cJSON_AddStringToObject(main_root, 性别, 男);cJSON_AddNumberToObject(main_root, 电话, 186);cJSON_AddStringToObject(main_root, 地址, 一般人不告诉);main_m_root cJSON_CreateObject();cJSON_AddNumberToObject(main_m_root, 号码, 9527); cJSON_AddNumberToObject(main_m_root, 传真, 5510);cJSON_AddStringToObject(main_m_root, 淘宝店, This熏);cJSON_AddItemToObject(main_root, 我是嵌套的cJSON, main_m_root);main_l_rootcJSON_CreateArray();cJSON_AddItemToObject(main_root,我是嵌套的数组,main_l_root);for(i0;i5;i){objcJSON_CreateObject();cJSON_AddItemToArray(main_l_root,obj);if(i%2 0) cJSON_AddNumberToObject(obj, 我是奇数循环, i);else cJSON_AddStringToObject(obj, 我是偶数循环, 12365);} 6. 我们查看添加的是否正确可以将链表通过串口打印出来。 response_str cJSON_Print(main_root);printf(%s\n,response_str); 7. 效果如下 四、解包 解包的函数只有一个 CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value); 还是用例子进行讲解 将串口的数据完全接收到一个大的缓冲区里面当然这个数据也可以来自wifi或者网络。 if(GET_STOP_flag) {for(i0;i(cJSON_pack_StopP-cJSON_pack_FistP)1;i){MessageTmp[i] WIFI_RC_buf[cJSON_pack_FistP-1i];} } GET_STOP_flag //为停止接收标志 cJSON_pack_StopP //停止指针位置 cJSON_pack_FistP //开始指针位置 MessageTmp //临时的数组 只需要对临时的数组进行操作即可。开辟内存空间将数组转换为字符串。 MessageStrTmp (char *)cJSON_malloc(sizeof(char) * (sizeof(MessageTmp) 1)); strncpy(MessageStrTmp, MessageTmp, sizeof(MessageTmp)); 使用解包函数 //接收解包过程 Thisxun_root cJSON_Parse(MessageStrTmp); Thisxun_root_type cJSON_GetObjectItem(hiss_root,type)-valuestring; if(strcmp(Thisxun_root_type,TYPE_USER_INFO_SYNC)0) {Thisxun_insDetail cJSON_GetObjectItem(Thisxun_root,insDetail);userID cJSON_GetObjectItem(Thisxun_insDetail,userId)-valuestring;password cJSON_GetObjectItem(Thisxun_insDetail,password)-valuestring; } 五、总结 每次封包和解包结束之后都要及时释放内存 cJSON_Delete(Thisxun_root); cJSON_free(MessageStrTmp); 对于单片机而言需要修改Heap_Size (*︶)创作不易期待你们的 点赞、收藏和评论喔。
http://www.yutouwan.com/news/155643/

相关文章:

  • 做农家乐农产品旅游的网站网站建设策划书的编制
  • 建个网站需要多少钱?上海网站建设 分类广告
  • 青海省建设厅网站备案资料个人网页设计实训报告
  • 昆明航空公司官方网站windows优化大师免费
  • 给网站做推广网站子网页怎么做
  • 高唐做网站建设的公司建站 备案
  • 在哪里可以做公司网站临清建网站
  • 国外建筑网站app百度下载app下载安装
  • 用jsp做网站的代码无锡本地模板网站建设产品
  • 青岛房产网站外链网站是什么
  • 网站管理助手ftp白云做网站SEO
  • 怎样才能建设只是于自己的网站河北专业网络营销收费公司
  • 中国住房和建设部网站首页问答论坛网站建设
  • 网站自己做还是找公司软文网站大全
  • 怎么做中英文双语网站深圳企业网站建设
  • 甘肃省建设厅网站首页网站如何做h5动态页面
  • 上海门户网站制广东网站设计费用
  • 做网站需要的图片中国建设工程质量安全管理协会网站
  • 个人网站 建设宿迁房产交易中心官网
  • 网站开发 入门教程企业邮箱注册申请126官网
  • 做物流哪个网站货源多英文外贸网站源码
  • 网站建设 维护 编程如何在网站做淘宝页面
  • 百度搜索官方网站昆山网站建设ikelv
  • 德阳建设厅官方网站阳西县网络问政平台公众号
  • 给卖假性药的做网站一般要判多久搭建一个网站需要多少钱?
  • 网站建设交印花税嘛中铁建设中南分公司
  • 成都网站建设询q479185700霸屏工程施工行业在哪个网站容易找事做
  • 青岛网站推广招商免费做手机网站
  • 有用unity做网站的吗有些网址打不开怎么解决
  • 邯郸网站建设联系电话两峡一峰旅游开发公司官方网站