demon如下
#include <stdio.h>
#include "cJSON.h"
char *creat_json()
{
char *creat_json = NULL;
cJSON *json=NULL;
cJSON *province=NULL;
cJSON *twcityArray=NULL;
/*1.初始化*/
//创建一个json对象,返回一个cJSON结构体类型的指针。
json=cJSON_CreateObject();
//创建一个json对象,返回一个cJSON结构体类型的指针。
province=cJSON_CreateObject();
twcityArray = cJSON_CreateArray();
/*2.填充初始化的结构体类型*/
//向jison对象中添加字符串
cJSON_AddStringToObject(json, "country", "中国");
cJSON_AddStringToObject(province, "name", "台湾");
//向数组对象中添加一个元素
cJSON_AddItemToArray(twcityArray, cJSON_CreateString("台北"));
cJSON_AddItemToArray(twcityArray, cJSON_CreateString("高雄"));
/*3.结构体嵌套填充*/
//向cJSON结构体province中添加cityArray数组对象
cJSON_AddItemToObject(province, "city", twcityArray);
//向cJSON结构体json中添加province的cJSON结构体
cJSON_AddItemToObject(json, "province", province);
//cJSON_Print(json)将一个cJSON结构体代表的json对象转换为一个json格式的字符串
creat_json=cJSON_Print(json);
printf("%s\n", creat_json);
return creat_json;
}
int main()
{
int i;
cJSON *cJSON_object = NULL;
cJSON *country = NULL;
cJSON *province = NULL;
cJSON *province_name = NULL;
cJSON *city_name = NULL;
const char *json=creat_json();
cJSON_object = cJSON_Parse(json);
//解析国家
country = cJSON_GetObjectItem(cJSON_object, "country");
printf("解析country:%s\n",country->valuestring);
//解析省份
province = cJSON_GetObjectItem(cJSON_object,"province");
province_name = cJSON_GetObjectItem(province, "name");
printf("解析province name:%s\n",province_name->valuestring);
//解析市
city_name=cJSON_GetObjectItem(province, "city");
int count = cJSON_GetArraySize(city_name);
printf("解析city:");
for(i=0;i<count;i++)
{
cJSON *cityItem = cJSON_GetArrayItem(city_name, i);
printf("%s ",cityItem->valuestring);
}
printf("\n");
return 0;
}
Makefile
LDFLAGS = -lm
OBJES = cJSON.o creat_json.o
creat_json: $(OBJES)
gcc $(OBJES) -o creat_json $(LDFLAGS)
test.o:creat_json.c cJSON.h
gcc -c creat_json.c -o creat_json.o
cJSON.o:cJSON.c cJSON.h
gcc -c cJSON.c -o cJSON.o
clean:
rm -rf *.o creat_json
本文介绍如何使用C语言和cJSON库进行JSON数据的创建、解析及打印。通过具体代码示例,详细展示了从创建JSON对象、填充数据到最终解析的过程,适合初学者快速上手。


571

被折叠的 条评论
为什么被折叠?



