#include<iostream> #include"cJson/cJSON.h" usingnamespacestd; voidparse_json_node(cJSON*json,size_t*align_count) { //打印缩进 for(inti=0;i<*align_count;i++) { printf(""); } switch(json->type) { casecJSON_False: printf("%s:false",json->string); break; casecJSON_True: printf("%s:true",json->string); break; casecJSON_NULL: printf("null"); break; casecJSON_Number: printf("%s:%ll",json->string,json->valuedouble); break; casecJSON_String: printf("%s:\"%s\"",json->valuestring); break; casecJSON_Array: { if(json->string) { printf("%s:",json->string); } ++*align_count; printf("[\n"); intlen=cJSON_GetArraySize(json); for(inti=0;i<len;i++) { cJSON*child_json=cJSON_GetArrayItem(json,i); parse_json_node(child_json,align_count); printf("\n"); } --*align_count; for(inti=0;i<*align_count;i++) { printf(""); } printf("]"); } break; casecJSON_Object: { if(json->string) { printf("%s:",json->string); } ++*align_count; printf("{\n"); intlen=cJSON_GetArraySize(json); for(inti=0;i<len;i++) { cJSON*child_json=cJSON_GetArrayItem(json,align_count); printf("\n"); } --*align_count; for(inti=0;i<*align_count;i++) { printf(""); } printf("}"); } break; } } intmain() { longlongfilesize=0; FILE*file=fopen("json/test5","rb+"); fseek(file,SEEK_END); filesize=ftell(file); fseek(file,SEEK_SET); char*buff=newchar[filesize]; fread(buff,1,filesize,file); fclose(file); cJSON*json=cJSON_Parse(buff); size_talign_count=0; parse_json_node(json,&align_count); /*cJSON*menu=cJSON_GetobjectItem(json,"menu"); intmenu_size=cJSON_GetArraySize(menu); cJSON*items=cJSON_GetArrayItem(menu,1); intitems_size=cJSON_GetArraySize(items); cJSON*item1=cJSON_GetArrayItem(items,0); intitem1_size=cJSON_GetArraySize(item1); cJSON*item1_attr1=cJSON_GetArrayItem(item1,0); */ return0; }
简单明了,无需解释!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。