cjson是一个用于解析和生成JSON格式数据的C语言库。它提供了一组简单的API,可以方便地将JSON数据转换为C语言数据结构,或将C语言数据结构转换为JSON数据。
下面是一个简单的例子,演示如何使用cjson库解析JSON格式数据:
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main()
{
char *json_str = "{\"name\":\"Tom\",\"age\":20,\"gender\":\"male\"}";
cJSON *root = cJSON_Parse(json_str);
if (root == NULL) {
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
cJSON *gender = cJSON_GetObjectItem(root, "gender");
printf("name: %s\n", name->valuestring);
printf("age: %d\n", age->valueint);
printf("gender: %s\n", gender->valuestring);
cJSON_Delete(root);
return 0;
}
在这个例子中,我们首先定义了一个JSON格式的字符串,然后使用cJSON_Parse函数将其解析为一个cJSON对象。如果解析失败,cJSON_Parse函数将返回NULL,并且可以使用cJSON_GetErrorPtr函数获取错误信息。
接下来,我们使用cJSON_GetObjectItem函数获取JSON对象中的各个属性,并打印它们的值。最后,我们使用cJSON_Delete函数释放cJSON对象的内存。
除了解析JSON格式数据外,cjson库还提供了一些API,可以方便地生成JSON格式数据。下面是一个简单的例子,演示如何使用cjson库生成JSON格式数据:
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
int main()
{
cJSON *root = cJSON_CreateObject();
cJSON_AddStringToObject(root, "name", "Tom");
cJSON_AddNumberToObject(root, "age", 20);
cJSON_AddStringToObject(root, "gender", "male");
char *json_str = cJSON_Print(root);
printf("%s\n", json_str);
cJSON_Delete(root);
free(json_str);
return 0;
}
在这个例子中,我们首先使用cJSON_CreateObject函数创建一个cJSON对象,然后使用cJSON_AddStringToObject和cJSON_AddNumberToObject函数向对象中添加属性。最后,我们使用cJSON_Print函数将cJSON对象转换为JSON格式的字符串,并打印它。
需要注意的是,在使用cJSON_Print函数生成JSON格式字符串后,需要使用free函数释放其内存。
以上就是使用cjson库解析和生成JSON格式数据的基本方法。如果需要更详细的使用说明,可以参考cjson库的官方文档。
【最后一个bug】多平台都有更新和发布,大家可以一键三连,关注+星标,不错过精彩内容~