// 读取json文件,并获得其中对象
int Readjsonfile(const char *filename)
{
std::string date;
int version;
FILE * file = fopen(filename,"r");
if(file == NULL)
{
return 1;
}
fseek(file,0,SEEK_END);
long len = ftell(file);
fseek(file,0,SEEK_SET);
char *jsondata = (char *)malloc(len+1);
fread(jsondata,0,len,file);
cJSON * root = cJSON_Parse(jsondata);
cJSON * version_json=cJSON_GetObjectItem(root, "perm_version");
cJSON * date_json=cJSON_GetObjectItem(root, "date");
cJSON * user_array=cJSON_GetObjectItem(root,"user"); //获取数组
date = date_json->valuestring; //取内容
version = version_json->valueint;
cJSON *user = user_array->child; //获取数组对象
while (user != NULL)
{
int id = cJSON_GetObjectItem(user,"id")->valueint;
std::string name = cJSON_GetObjectItem(user,"name")->valuestring;
std::cout << id <<name<< std::endl;
user = user->next; //获取下一个
}
std::cout << date <<version <<std::endl;
flose(file);
free(jsondata);
jsondata = NULL;
if(root)
cJSON_Delete(root);
return 0
}
json内容
{
"perm_version": 1,
"date" : "2021.1.21"
"user": [
{
"id": 1,
"name": "大狗"
}
]
}