C C++最新【C语言开源库】在Clion上使用开源库cJSON_clion中安装cjson库,2024年最新作为C C++程序员都应掌握

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

set(CMAKE_C_STANDARD 99)

add_executable(cjson_prj main.c)


修改之后



cmake_minimum_required(VERSION 3.21)
project(cjson_prj C)

set(CMAKE_C_STANDARD 99)

add_executable(cjson_prj main.c cJSON.c)


之后我们所有的修改都是在main.c中进行。


### 封装数据和打印数据示例



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

int main(void)
{
cJSON* cjson_test = NULL;
cJSON* cjson_address = NULL;
cJSON* cjson_skill = NULL;
char* str = NULL;

/\* 创建一个JSON数据对象(链表头结点) \*/
cjson_test = cJSON\_CreateObject();

/\* 添加一条字符串类型的JSON数据(添加一个链表节点) \*/
cJSON\_AddStringToObject(cjson_test, "name", "mculover666");

/\* 添加一条整数类型的JSON数据(添加一个链表节点) \*/
cJSON\_AddNumberToObject(cjson_test, "age", 22);

/\* 添加一条浮点类型的JSON数据(添加一个链表节点) \*/
cJSON\_AddNumberToObject(cjson_test, "weight", 55.5);

/\* 添加一个嵌套的JSON数据(添加一个链表节点) \*/
cjson_address = cJSON\_CreateObject();
cJSON\_AddStringToObject(cjson_address, "country", "China");
cJSON\_AddNumberToObject(cjson_address, "zip-code", 111111);
cJSON\_AddItemToObject(cjson_test, "address", cjson_address);

/\* 添加一个数组类型的JSON数据(添加一个链表节点) \*/
cjson_skill = cJSON\_CreateArray();
cJSON\_AddItemToArray(cjson_skill, cJSON\_CreateString( "C" ));
cJSON\_AddItemToArray(cjson_skill, cJSON\_CreateString( "Java" ));
cJSON\_AddItemToArray(cjson_skill, cJSON\_CreateString( "Python" ));
cJSON\_AddItemToObject(cjson_test, "skill", cjson_skill);

/\* 添加一个值为 False 的布尔类型的JSON数据(添加一个链表节点) \*/
cJSON\_AddFalseToObject(cjson_test, "student");

/\* 打印JSON对象(整条链表)的所有数据 \*/
str = cJSON\_Print(cjson_test);
printf("%s\n", str);

return 0;

}


![image-20210730180202735](https://img-blog.csdnimg.cn/img_convert/4be9940c2aefafeb193e82b4dc5addcd.png)


### cJSON数据解析



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

char *message =
“{
“name”:“mculover666”,
“age”: 22,
“weight”: 55.5,
“address”:
{
“country”: “China”,
“zip-code”: 111111
},
“skill”: [“c”, “Java”, “Python”],
“student”: false
}”;

int main(void)
{
cJSON* cjson_test = NULL;
cJSON* cjson_name = NULL;
cJSON* cjson_age = NULL;
cJSON* cjson_weight = NULL;
cJSON* cjson_address = NULL;
cJSON* cjson_address_country = NULL;
cJSON* cjson_address_zipcode = NULL;
cJSON* cjson_skill = NULL;
cJSON* cjson_student = NULL;
int skill_array_size = 0, i = 0;
cJSON* cjson_skill_item = NULL;

/\* 解析整段JSO数据 \*/
cjson_test = cJSON\_Parse(message);
if(cjson_test == NULL)
{
    printf("parse fail.\n");
    return -1;
}

/\* 依次根据名称提取JSON数据(键值对) \*/
cjson_name = cJSON\_GetObjectItem(cjson_test, "name");
cjson_age = cJSON\_GetObjectItem(cjson_test, "age");
cjson_weight = cJSON\_GetObjectItem(cjson_test, "weight");

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

](https://bbs.csdn.net/topics/618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值