资源平台如何建设网站,江西省城乡建设培训中心网站,最吸引人的广告牌,网站百度手机端排名怎么查询cJSON库描述CJSON是一个用于解析JSON包的C语言库#xff0c;库文件为cJSON.c和cJSON.h#xff0c; 所有的实现都在这两个文件中。原作者的地址cJSON。JSON包的解析例如有一个JSON的数据包如下#xff1a;{rxpk: [{tmst: 1868500100,time库文件为cJSON.c和cJSON.h 所有的实现都在这两个文件中。原作者的地址cJSON。JSON包的解析例如有一个JSON的数据包如下{rxpk: [{tmst: 1868500100,time: 2016-07-07T13:20:40.003906Z,chan: 1,rfch: 0,freq: 779.7,stat: 1,modu: LORA,datr: SF9BW125,codr: 4/5,lsnr: 9.8,rssi: -37,size: 83,data: QH/4iimAKgACB0KHP8e0IgQAhI0bBi9bvFfb8jHeSWEAhpnsCGHwt9pUCvrRMazQRBtNkh3Ge5hFL8jUtHpk3luFtcTLlgGVMPSBLpSp8h6C44}]}我们需要获取其中的data字段需要进行的过程如下首先声明变量 cJSON *json;cJSON *rxpk;cJSON *arr0;cJSON *data;将上述的字符串进行解析,并保存在json中;获取json其中的rxpk字段的内容并保存在rxpk中;获取rxpk中的arr部分拿出一种的第一个数组并保存在arr0;获取arr0的data部分并保存在data;使用data-valuestring即可获取其中的data字段的内容 具体的代码实现如下所示 uint16_t rxpk_data_get(char* text,char* dest_str){uint16_t len 0;cJSON *json;cJSON *data;cJSON *arr0;cJSON *rxpk;json cJSON_Parse(text);if(!json)//对JSON包进行合法性检查return 0;rxpk cJSON_GetObjectItem(json,rxpk);if(!rxpk)//对rxpk进行合法性检查return 0;arr0 cJSON_GetArrayItem(rxpk,0);if(!arr0)//对arr0进行合法性检查return 0;data cJSON_GetObjectItem(arr0,data);if(!data)//对data进行合法性检查return 0;len strlen(data-valuestring);memcpy(dest_str,data-valuestring,len);dest_str[len] 0;return len;}在json包中遇到数组时/* Returns the number of items in an array (or object). */extern int cJSON_GetArraySize(cJSON *array);这个函数可以获取数组的长度。