#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; }
简单明了,无需解释!
原文链接:https://www.f2er.com/json/289946.html