手把手教你使用cJSON

cjson是一个C语言库,用于处理JSON数据。示例展示了如何使用cjson进行解析和生成,包括cJSON_Parse、cJSON_GetObjectItem、cJSON_CreateObject、cJSON_AddStringToObject等关键函数的用法。
摘要由CSDN通过智能技术生成

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】多平台都有更新和发布,大家可以一键三连,关注+星标,不错过精彩内容~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值