当前位置:首页 > 系统教程 > 正文

macOS中使用cJSON解析库解析JSON (小白也能看懂的详细教程)

macOS中使用cJSON解析库解析JSON (小白也能看懂的详细教程)

1. 什么是cJSON?

cJSON库是一个超轻量级的JSON解析库,完全由C语言编写,具有无依赖、移植性好、速度快的特点。在macOS JSON解析场景中,cJSON是非常受欢迎的选择。本JSON解析教程将手把手教你在macOS上配置和使用cJSON。

2. 安装cJSON(cJSON安装配置

macOS上推荐使用Homebrew安装cJSON:

brew install cjson

如果需要手动编译,可以从GitHub克隆仓库,使用CMake构建。

macOS中使用cJSON解析库解析JSON (小白也能看懂的详细教程) cJSON库  macOS JSON解析 JSON解析教程 cJSON安装配置 第1张

3. 第一个解析程序

创建一个json_demo.c文件:

#include #include int main() {    const char *json_string = "{\"name\':\"cJSON\",\"version\':\"1.7.15\'}";    cJSON *json = cJSON_Parse(json_string);    if (json == NULL) {        printf("解析失败\n");        return 1;    }    cJSON *name = cJSON_GetObjectItem(json, "name");    cJSON *version = cJSON_GetObjectItem(json, "version");    printf("name: %s, version: %s\n", name->valuestring, version->valuestring);    cJSON_Delete(json);    return 0;}

编译命令:

clang -o json_demo json_demo.c -lcjson

运行:./json_demo 输出 name: cJSON, version: 1.7.15

4. 进阶:解析文件中的JSON

从文件读取JSON字符串并解析:

#include #include #include char *read_file(const char *filename) {    FILE *f = fopen(filename, "rb");    fseek(f, 0, SEEK_END);    long len = ftell(f);    fseek(f, 0, SEEK_SET);    char *data = malloc(len + 1);    fread(data, 1, len, f);    data[len] = "\0";    fclose(f);    return data;}int main() {    char *json_str = read_file("data.json");    cJSON *json = cJSON_Parse(json_str);    free(json_str);    // ... 处理json ...    cJSON_Delete(json);    return 0;}

5. 常见错误与调试

❌ 找不到cJSON头文件:确保安装了cJSON,编译时添加-I/usr/local/include-L/usr/local/lib❌ 内存泄漏:每次cJSON_Parse后必须cJSON_Delete❌ 解析错误:使用cJSON_GetErrorPtr()获取错误位置

6. 总结

通过本教程,你已经学会了在macOS上安装cJSON、编写解析代码、处理文件和避坑指南。cJSON虽小,功能俱全,足以应对大部分嵌入式或macOS平台的JSON解析需求。

—— 完 ——