加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cJSON解析一例通

发布时间:2020-12-16 19:11:18 所属栏目:百科 来源:网络整理
导读:#includeiostream#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;casecJSO
#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;
}

简单明了,无需解释!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读