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

江门网站建设工作建设银行个人网站

江门网站建设工作,建设银行个人网站,蓝牙音箱东莞网站建设,电脑做ppt一般下载哪个网站好json JSON#xff08;JavaScript Object Notation#xff09;是一种轻量级的数据交换格式#xff0c;广泛用于前后端数据传输和存储。在C语言中#xff0c;我们可以使用cjson库来处理JSON数据。本问总结了在使用cjson库中各个常用API的用法#xff0c;包括组装JSON#x…json JSONJavaScript Object Notation是一种轻量级的数据交换格式广泛用于前后端数据传输和存储。在C语言中我们可以使用cjson库来处理JSON数据。本问总结了在使用cjson库中各个常用API的用法包括组装JSON包括对象、数组、字符串等以及解析JSON解析对象、数组、字符串等。 1. cjson库简介 cjson是一个轻量级的C语言库用于处理JSON数据。它提供了简单易用的API能够方便地将C语言中的数据转换成JSON格式以及将JSON格式的数据解析成C语言中的数据。 2. JSON对象的组装 2.1 组装JSON对象 要组装一个JSON对象可以使用以下API //先创建一个cJSON对象头指针 cJSON *cJSON_CreateObject(void); //添加一个对象到另一个对象实现嵌套 void cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item);注意事项 在调用cJSON_CreateObject后返回的指针需要通过cJSON_Delete进行内存释放以防止内存泄漏。使用cJSON_AddItemToObject将各个子项添加到JSON对象中其中string是子项的键名item是子项的值可以是数字、字符串、数组等其他JSON类型。 示例 { “age”:30 “name” :“John” “is_student”:1 } #include stdio.h #include cJSON.hint main() {// 组装JSON对象cJSON *jsonObj cJSON_CreateObject();// 添加数字到JSON对象中cJSON_AddNumberToObject(jsonObj, age, 30);// 添加字符串到JSON对象中cJSON_AddStringToObject(jsonObj, name, John);// 添加布尔值到JSON对象中这里用1表示truecJSON_AddBoolToObject(jsonObj, is_student, 1);// 将JSON对象转换成字符串会开辟一个新内存调用此函数记得手动释放char *jsonStr cJSON_Print(jsonObj);printf(JSON Object:\n%s\n, jsonStr);// 释放JSON对象的内存cJSON_Delete(jsonObj);// 释放JSON字符串的内存free(jsonStr);return 0; } 2.2 组装JSON数组 要组装一个JSON数组可以使用以下API cJSON *cJSON_CreateArray(void); void cJSON_AddItemToArray(cJSON *array, cJSON *item);注意事项 在调用cJSON_CreateArray后返回的指针需要通过cJSON_Delete进行内存释放以防止内存泄漏。如果将cJSON_CreateArray数组对象添加到其他对象中作为子对象时只需释放总JSON头部即可。使用cJSON_AddItemToArray将各个子项添加到JSON数组中item是子项的值可以是数字、字符串、对象等其他JSON类型。 示例 { “logList”: [{ “logName”: “f1”, “logSize”: 1357, “logTime”: “2023-07-24 15:19:25” } …//可添加 ] } #include stdio.h #include cJSON.hint main() {// 创建 JSON 格式的根对象cJSON *root cJSON_CreateObject();cJSON *jsonArray cJSON_CreateArray();//创建子对象cJSON *logEntry cJSON_CreateObject();cJSON_AddStringToObject(logEntry, logName, filename);cJSON_AddStringToObject(logEntry, logSize, 100);cJSON_AddStringToObject(logEntry, logTime,2023-07-24 15:19:25);//对象的相互嵌套不受顺序影响//将logentry插入到jsonarray数组中cJSON_AddItemToArray(jsonArray , logEntry);//将数组插入到跟对象cJSON_AddItemToObject(root, jsonArray , jsonArray );char *jsonStr cJSON_Print(root);printf(JSON Array:\n%s\n, jsonStr);cJSON_Delete(root); // 释放root内存free(jsonStr); // 释放jsonStr内存return 0; }3. JSON对象的解析 3.1 解析JSON对象 要解析JSON中的对象可以使用以下API cJSON *cJSON_Parse(const char *value); cJSON *cJSON_GetObjectItem(const cJSON *object, const char *string);注意事项 在调用cJSON_Parse后返回的指针需要通过cJSON_Delete进行内存释放以防止内存泄漏。使用cJSON_GetObjectItem根据键名获取JSON对象中的子项。 示例 { “age”:30 “name” :“John” “is_student”:true } #include stdio.h #include cJSON.hint main() {const char *jsonStr {\name\:\John\,\age\:30,\is_student\:true};cJSON *jsonObj cJSON_Parse(jsonStr);if (jsonObj ! NULL) {//解析跟每个子对象的顺序无关cJSON *nameObj cJSON_GetObjectItem(jsonObj, name);cJSON *ageObj cJSON_GetObjectItem(jsonObj, age);cJSON *isStudentObj cJSON_GetObjectItem(jsonObj, is_student);if (nameObj ! NULL cJSON_IsString(nameObj)) {printf(Name: %s\n, nameObj-valuestring);}if (ageObj ! NULL cJSON_IsNumber(ageObj)) {printf(Age: %d\n, ageObj-valueint);}if (isStudentObj ! NULL cJSON_IsBool(isStudentObj)) {printf(Is Student: %s\n, isStudentObj-valueint ? true : false);}cJSON_Delete(jsonObj); // 释放jsonObj内存} else {printf(JSON parsing failed!\n);}return 0; }3.2 解析JSON数组 要解析JSON中的数组可以使用以下API cJSON *cJSON_Parse(const char *value); cJSON *cJSON_GetArrayItem(const cJSON *array, int index);注意事项 在调用cJSON_Parse后返回的指针需要通过cJSON_Delete进行内存释放以防止内存泄漏。使用cJSON_GetArrayItem根据索引获取JSON数组中的子项。 示例 { [ apple, 123, true ] } #include stdio.h #include cJSON.hint main() {const char *jsonStr [\apple\, 123, true];cJSON *jsonArray cJSON_Parse(jsonStr);if (jsonArray ! NULL cJSON_IsArray(jsonArray)) {int arraySize cJSON_GetArraySize(jsonArray);for (int i 0; i arraySize; i) {cJSON *item cJSON_GetArrayItem(jsonArray, i);if (cJSON_IsString(item)) {printf(Array Item %d: %s\n, i, item-valuestring);} else if (cJSON_IsNumber(item)) {printf(Array Item %d: %d\n, i, item-valueint);} else if (cJSON_IsBool(item)) {printf(Array Item %d: %s\n, i, item-valueint ? true : false);}}cJSON_Delete(jsonArray); // 释放jsonArray内存} else {printf(JSON parsing failed!\n);}return 0; }
http://www.eeditor.cn/news/122935/

相关文章:

  • 网站建设合理的流程wordpress 微信主题
  • 做自媒体网站ui私活20个页面以上多少钱
  • 门户网站开发视频装修公司咨询电话
  • 注册网站多少钱建盏厂家
  • 微信企业网站源码下载基于php技术的网站建设
  • 深圳网站建设知名 乐云践新做外贸一般看什么网站
  • 17网站一起做网店池尾商圈洛阳兼职网站
  • iis7.5网站配置网站301了不知道在哪做的
  • 中山网站优化营销网站建设三站合一微信小程序
  • 网站建设开发的条件徐州模板厂
  • 免费学习资源网站网易免费企业邮箱注册申请
  • 福建百益建设集团有限公司网站python网页编程
  • 个人做的小网站需要备案网页搜索优化seo
  • 北京网站设计济南兴田德润评价进入淘宝网官网首页电脑版
  • 北京网站维护公司做买衣服的网站
  • 建设o2o网站可信网站认证logo
  • 做俄语网站广州软件开发培训班
  • 网站秒收录怎么做的wordpress如何拖移小工具
  • 建设网站英文翻译前沿的设计网站
  • 四川公司网站建设ps如何做ppt模板下载网站
  • 湘潭市网站建设商贸公司注册需要多少钱
  • 360网站弹窗推广怎么做的app推广软件
  • 智慧团建网站登录入口手机版怎样创建网站教程
  • 企业网站模板 免费前几年做那些网站致富
  • 当地信息网站建设资质网站营销队伍
  • 自己给公司做网站难不难佛山建筑公司排名
  • 中国建设门户网站成都有啥好玩的地方
  • wordpress4.9.4 使用教程seo关键词优化到首页
  • 出国越南做网站8000保底小公司做网站的实力
  • 网站建设的维护与更新南宁企业建站模板