微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

json字符串用c语言

JSON是一种轻量级的数据交换格式,常用于前后端数据传输。C语言可以通过第三方库来解析和生成JSON字符串。

json字符串用c语言

C语言中常用的JSON解析库有几个,如cJSON、JSMN等。其中,cJSON是比较流行的解析库,以下代码演示了如何使用cJSON解析一个JSON字符串:

#include <stdio.h>
#include <cJSON.h>

int main() {
    char *json_str = "{\"name\":\"Peter\",\"age\":18,\"hobby\":[\"coding\",\"reading\"]}";
    cJSON *root = cJSON_Parse(json_str);

    if (!root) {
        printf("JSON parse error\n");
        return -1;
    }

    cJSON *name = cJSON_GetobjectItem(root,"name");
    cJSON *age = cJSON_GetobjectItem(root,"age");
    cJSON *hobby = cJSON_GetobjectItem(root,"hobby");

    printf("name: %s\n",name->valuestring);
    printf("age: %d\n",age->valueint);

    cJSON *hobby_item;
    cJSON_ArrayForEach(hobby_item,hobby) {
        printf("hobby: %s\n",hobby_item->valuestring);
    }

    cJSON_Delete(root);
    return 0;
}

以上代码通过cJSON库解析了一个JSON字符串,并依次获取其中的name、age和hobby字段的值。cJSON支持的数据类型包括null、bool、number、string、array和object。

如果需要在C语言中生成JSON字符串,可以使用cJSON提供的函数。以下是一个示例:

#include <stdio.h>
#include <cJSON.h>

int main() {
    cJSON *root = cJSON_CreateObject();
    cJSON_AddStringToObject(root,"name","Peter");
    cJSON_AddNumberToObject(root,"age",18);

    cJSON *hobby = cJSON_CreateArray();
    cJSON_AddItemToArray(hobby,cJSON_CreateString("coding"));
    cJSON_AddItemToArray(hobby,cJSON_CreateString("reading"));
    cJSON_AddItemToObject(root,"hobby",hobby);

    char *json_str = cJSON_Print(root);
    printf("%s\n",json_str);

    cJSON_Delete(root);
    free(json_str);
    return 0;
}

以上代码创建了一个JSON对象,并添加了name、age和hobby三个字段的值。最后通过cJSON_Print函数将JSON对象转化为JSON字符串输出

总之,使用C语言解析和生成JSON字符串可以通过第三方库来实现,以cJSON库为例,可以轻松解析和生成JSON字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐