Json C语言嵌套遍历Json节点

news/2025/11/22 10:01:40/文章来源:https://www.cnblogs.com/xgz21/p/19255583
Json
//程序用到了网上比较流行的Cjson开源库,可以在网上搜索下载,有两个文件(cjson.h和cjson.c),放到目录下即可

//
JsonTest.cpp : Defines the entry point for the console application. // XGZ.SZ.20251122 // Note:json嵌套遍历时需区分数据是否为一个节点下的 #include <stdio.h> #include "cJSON.h"void PrintjNode(cJSON *jNode) {int i;int size;cJSON * node = jNode;if(node == NULL) return;printf("%s:", node->string);switch(node->type){case cJSON_False:printf("False\n");break;case cJSON_True:printf("True\n");break;case cJSON_NULL:printf("NULL\n");break;case cJSON_Number:printf("%d\n", node->valueint);break;case cJSON_String:printf("%s\n", node->valuestring);break;case cJSON_Array:cJSON *nodeArray;size = cJSON_GetArraySize(node);printf("[");for(i = 0; i < size; i++){nodeArray = cJSON_GetArrayItem(node, i);if(nodeArray == NULL) continue;printf("%s,", nodeArray->valuestring);}printf("]\n");break;case cJSON_Object://sub node printf("Object{\n", node->valuestring); break;default:printf("unknown\n", node->valuestring);} }void FindjNode(cJSON *jNode) {cJSON * node = jNode;if(node == NULL) return;PrintjNode(node);cJSON* jNodeChild = node->child;FindjNode(jNodeChild);if(jNodeChild != NULL) printf("}\n"); //XGZ:区分子节点数据和兄弟节点数据 cJSON* jNodeNext = node->next;FindjNode(jNodeNext); } int main(int argc, char* argv[]) {char text1[]="{\n\"name\": \"Jack (\\\"Bee\\\") Nimble\", \n\"format\": {\"type\": \"rect\", \n\"width\": 1920, \n\"height\": 1080, \n\"interlace\": false,\"frame rate\": 24\n}\n}"; //XGZ: 在原测试字符串中增加两个子节点char text2[]="{\n\"name\": \"Jack (\\\"Bee\\\") Nimble\", \n\\"format\": {\"type\": \"rect\", \n\"width\": 1920, \n\"height\": 1080, \n\"interlace\": false,\"frame rate\": 24\n},\\n\"name\": \"Tom (\\\"Cow\\\") Nimble\", \n\\"format\": {\"type\": \"Nothing\"\n}\ }"; cJSON *root = cJSON_Parse(text1);printf("\n=========================\n");FindjNode(root);//XGZ: 找个文件测试long len;char *pdata;FILE *fp = fopen("r:\\agent_vmw7.json","rb"); //FILE *fp = fopen("r:\\test2.json","rb");fseek(fp,0,SEEK_END);len=ftell(fp);fseek(fp,0,SEEK_SET);pdata=new char[len+1];fread(pdata,1,len,fp);fclose(fp);root = cJSON_Parse(pdata);printf("\n=========================\n");FindjNode(root);delete pdata;return 0; }

程序运行的结果:

image

 

 

 

 

数据遍历,打印用{}区分子节点数据 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/972819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java企业级Function Calling落地:JBoltAI的架构设计与实践之道

Java企业级Function Calling落地:JBoltAI的架构设计与实践之道在AI原生应用开发浪潮中,Function Calling(函数调用)已成为连接大模型与业务系统的核心桥梁——它让AI能够精准调用现有系统接口、执行具体业务操作,…

AI知识库检索的精度与召回平衡之道:JBoltAI的技术实践

AI知识库检索的精度与召回平衡之道:JBoltAI的技术实践在AI应用开发中,知识库检索是决定系统实用性的核心环节。单一向量相似度搜索常陷入“语义泛化则精度不足,精确匹配则召回率偏低”的困境,复杂业务场景下更是难…

AI原生应用:Java架构师的下一站,不是打补丁,是范式革新

AI原生应用:Java架构师的下一站,不是打补丁,是范式革新作为深耕企业级应用的Java架构师,我们大概率都做过这样的操作:在Service层注入RestTemplate或WebClient,调用OpenAI、文心一言的API,将返回文本展示在界面…

邢台市一对一家教机构推荐,2025最新教育机构权威测评榜单

“孩子数学几何越补越懵,英语阅读提分无果,找个懂邢台考情的一对一家教机构咋这么难?” 这声感叹,道出了无数邢台家长的心声。无论是桥东区天一广场商圈、桥西区北国商城商圈、万达商圈、中北世纪城商圈周边的核心…

AI开发别再“大材小用”:JBoltAI的分流策略让效率与成本双向最优

AI开发别再“大材小用”:JBoltAI的分流策略让效率与成本双向最优在AI应用落地的浪潮中,很多开发团队都陷入了一个隐形误区:让大模型承担了大量本可通过规则或代码高效解决的“体力活”。比如用多模态大模型完整处理…

毕节市一对一家教机构推荐,2025最新教育机构权威测评榜单

“孩子偏科补了半载仍无起色,想找家真正靠谱的一对一辅导机构,为何成了毕节家长的难心事?”这声无奈感叹,道出万千毕节家长心声。无论是七星关区、黔西市的主城区家庭,大方县、金沙县的城郊父母,还是织金县、纳雍…

1v1视频源码,js实现滚动到某个位置动画 - 云豹科技

1v1视频源码,js实现滚动到某个位置动画场景大概是点击tab可以滚动到对应的位置我在vue项目里使用如下:<ul><li @click="changeTab(first)">我是tab一</li><li @click="changeTa…

2025年新疆高三复读班权威推荐榜单:高三集训班/高三补习班/民办高中管理学校精选

新疆高三复读教育市场经过多年发展,已形成多元化、分层化的专业服务体系,为学子们提供了多种提升路径。 近年来,新疆高三复读市场呈现出专业化、规范化的良好发展态势。随着高考竞争日趋激烈,家长和学生对高质量复…

2025年KCA订做厂家权威推荐榜单:KCB/KX型/EX型源头厂家精选

在高端装备制造与特种材料需求持续增长的推动下,KCA(高性能合金材料)作为航空航天、新能源、船舶制造等领域的关键材料,其定制化市场需求显著提升。据行业数据显示,2024年中国高性能合金市场规模已达320亿元,年均…

【程序员日志】想再试试,再追一下梦想

【程序员日志】想再试试,再追一下梦想重新出发,在程序员这个岗位上再试试。荒废了半年的“武功”,不知道应聘结果如何。工作了3年,和我想象的大相径庭,离职的时候,工作压力、技术焦虑、家庭压力确实是把我压得喘…

2025宜春市一对一辅导测评排行榜:这些机构值得推荐

在宜春市袁州区、丰城市、樟树市、高安市、奉新县、万载县、上高县、宜丰县、靖安县、铜鼓县的中小学家长圈里,“找对一对一辅导”早已成为共同的焦虑。袁州的家长发愁初中物理找不到精准补漏的老师,丰城的高中生家长…

六盘水一对一家教机构推荐,2025最新辅导机构靠谱测评排行榜

“孩子偏科补了半年没效果,找个靠谱的一对一辅导咋这么难?”这声感叹,戳中了无数六盘水家长的心事。无论是钟山区、水城区的主城区家庭,六枝特区、盘州市的城郊父母,还是苦于优质课外补习资源匮乏的各区县家长,为…

泰州一对一课外辅导机构实力推荐,2026最新靠谱培训机构排行榜揭晓!

泰州家长找一对一家教,是不是总被三大难题困住:靠谱的教育机构哪家好?不同学习阶段的收费多少才合理?如何选到真正适配孩子的个性化辅导方案?海陵区家长怕踩“无证家教”的坑,高港区家长纠结线下补习的性价比,姜…

【完整源码+信息集+部署教程】【天线&空中农业】农业病害检测系统源码&数据集全套:改进yolo11-SPPF-LSKA

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025-11-22 摄影学习1

2025-11-22 摄影学习1学习内容: 1.课程介绍、采集相机型号. 2.为什么学习摄影,想法 看法 观点. 3.摄影可以凝固美好时光.

秦皇岛市一对一家教机构推荐,2025最新教育机构口碑实用排名

孩子数学成绩常年拖后腿、英语听力反复丢分,语文作文难拿高分;报了大班课在海港区太阳城商圈的培训机构,却总被老师忽略;家长忙着在世纪港湾、万达广场商圈奔波工作,没时间陪读,想找靠谱的一对一家教辅导,又怕遇…

贵阳一对一家教机构推荐,2025最新辅导机构权威测评榜单

"孩子成绩中游徘徊,大班补习像 “陪读”,钱花不少没进步;想找一对一补习、一对一家教机构,又怕老师水平参差,补半年没效果还退费难 —— 这些糟心事,让云岩区、南明区、观山湖区、花溪区寻靠谱课外辅导机构…

遵义市一对一家教机构推荐,2025最新培训机构测评排行榜

“孩子偏科补了半年没效果,找个靠谱的一对一辅导咋这么难?”这声感叹,戳中了无数遵义家长的心事。无论是面临升学压力的家庭,还是想帮孩子夯实基础的父母,为孩子筛选适配的家教培训,早已成了家庭“必修课”。 小…

2025年杭州离婚律师权威推荐榜单:涉外离婚/离婚纠纷/离婚财产纠纷专业律师团队精选

近年来,杭州离婚纠纷案件年均增长约12.5%,其中涉及股权分割、涉外离婚的复杂案件占比显著提升。 根据杭州市律师协会2025年最新数据,杭州离婚案件中财产分割争议占比高达68%,其中涉及公司股权与房产混合分割的案件…

2025.11 NOIP 前做题记录(未完成)

NOIP 模拟T3(环上 DP,矩阵乘法,二进制分段倍增) NOIP 模拟 T4(二分图染色) P11057 诈骗题 蓝(二分图建模) 题意 定义 \(f(n,m)\) 为下列问题的答案。考虑一个 \(n\times m\) 黑白网格图,初始全是白色的。每次…