微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cJSON解析一例通

#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 举报,一经查实,本站将立刻删除。

相关推荐