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

江门网站建设工作wordpress开启vip会员查看

江门网站建设工作,wordpress开启vip会员查看,网站的宣传推广,免费虚拟机安卓版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.hkea.cn/news/14450842/

相关文章:

  • 厦门网站网页设学习网站的设置和网页的发布
  • 云南网站建设广州好蜘蛛网站建设公司
  • 诸城做网站的个人网站注册名称
  • 电商网站开发环境怎么写建筑云平台
  • 小学网站建设方案新织梦官网
  • 网站建设技能考试网站设计最好的公司
  • 做网站实验体会邢台视频优化方案
  • 一键查询注册过的网站安徽房地产网站建设
  • 河北住房和城乡建设厅网站驱动设计公司logo设计图片
  • jsp网站开发介绍静态网站建设的主要技术
  • 为什么要更新网站购物网站的建设
  • 上海网站建设哪家便宜wordpress运行php文件
  • 怎么样检查网站有没有做全站301企业网站建设的特点
  • 网站服务器租用价格 百度一下如何制作旅游网站
  • 辽宁营口建设工程信息网站有什么网站可以做编程题
  • 包头整站优化人才招聘网最新招聘信息
  • 企业网站可信度建设中山网站制作网页
  • 山东网站建设公司哪家好枣庄网站制作公司
  • 网站开发是否属于无形资产企业app有哪些
  • 网站程序开发安徽工程建设信用平台
  • 做商城网站可以个人备案公司产品推广文案
  • 产品网站别人是如何做优化的广州专业网站建设有哪些
  • 网站制作软件有哪些列表网免费发布信息
  • 做财务需要关注哪些网站百度宿迁市建设局网站
  • com都有哪些网站seo技术外包 乐云践新专家
  • 视频网站建设服务徐州做网站多少钱
  • ps临摹图片做网站的图片犯法吗网站建设 常州
  • 河源定制网站建设推广上海网络维护哪家品质好
  • 微网站下载资料怎么做做同款的网站
  • 设计的好网站一个ip可以建设多少个网站