C语言怎么用cjson解析json文件

   2025-02-13 6530
核心提示:使用cjson库解析JSON文件的步骤如下:从cjson官方网站(https://github.com/DaveGamble/cJSON)下载cjson库,并将其添加到你的C

使用cjson库解析JSON文件的步骤如下:

从cjson官方网站(https://github.com/DaveGamble/cJSON)下载cjson库,并将其添加到你的C语言项目中。

包含cjson头文件:

#include "cJSON.h"

读取JSON文件内容:

// 打开JSON文件FILE *file = fopen("example.json", "r");if (file == NULL) {    // 处理文件打开失败的情况    return;}// 获取JSON文件大小fseek(file, 0, SEEK_END);long fileSize = ftell(file);fseek(file, 0, SEEK_SET);// 分配内存并读取JSON内容char *jsonString = (char *)malloc(fileSize + 1);fread(jsonString, 1, fileSize, file);jsonString[fileSize] = '\0';// 关闭文件fclose(file);

解析JSON内容:

// 解析JSON字符串cJSON *json = cJSON_Parse(jsonString);if (json == NULL) {    // 处理解析失败的情况    free(jsonString);    return;}// 从JSON对象中获取需要的数据cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name");if (cJSON_IsString(name) && (name->valuestring != NULL)) {    printf("Name: %s\n", name->valuestring);}cJSON *age = cJSON_GetObjectItemCaseSensitive(json, "age");if (cJSON_IsNumber(age) && (age->valuedouble != 0)) {    printf("Age: %.1f\n", age->valuedouble);}// 释放资源cJSON_Delete(json);free(jsonString);

最后,记得释放资源。

cJSON_Delete(json);free(jsonString);

以上是使用cjson库解析JSON文件的基本步骤。你可以根据实际需要进一步处理JSON对象中的数据。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言