linux c语言全面学习json解析函数

本文详细介绍了Linux环境下使用C语言进行JSON结构的定义、常用函数的解释,并通过实例展示了如何解析并打印JSON数据,包括对象obj_1到obj_3及子对象sub_obj_1的值。
摘要由CSDN通过智能技术生成

1,json结构的定义

typedef struct cJSON {  //cJSON结构体
       struct cJSON*next,*prev;           /* 遍历数组或对象链的前向或后向链表指针*/
       struct cJSON *child;                   /*数组或对象的孩子节点*/
       int type;                                     /* key的类型*/
       char *valuestring;                       /*字符串值*/
       int valueint;                                /* 整数值*/
       double valuedouble;                    /* 浮点数值*/
       char *string;                               /* key的名字*/
} cJSON;

2,json常用函数说明

(1)定义一个JSON数据包,按照cJSON结构体的结构序列化整个数据包,并在堆中申请空间,返回值是成功返回一个指向内存块中的cJSON的指针,失败返回NULL
cJSON *cJSON_Parse(const char *value);

(2)获取JSON字符串字段值
cJSON *cJSON_GetObjectItem(cJSON *object,c
Linux下使用CLion解析JSON字符串,可以通过以下步骤实现: 1. 首先,需要安装一个JSON库,比如 cJSON。可以通过在终端输入以下命令来安装: ``` sudo apt-get install libcjson-dev ``` 2. 在CLion中创建一个新的C语言项目,然后在项目的根目录下创建一个名为“lib”(或其他任何名称)的文件夹,用于将cJSON库的头文件和源文件存放在其中。 3. 将cJSON的头文件和源文件复制到“lib”文件夹中。可以从cJSON官方网站上下载源代码,然后将其中的“cJSON.h”和“cJSON.c”文件复制到“lib”文件夹中。 4. 在CLion中打开“CMakeLists.txt”文件,并添加以下代码: ``` include_directories(${PROJECT_SOURCE_DIR}/lib) add_library(cjson STATIC lib/cJSON.c) ``` 这将告诉CLion将“lib”文件夹中的头文件添加到项目中,并将“cJSON.c”文件编译为静态库。 5. 在代码中包含头文件“cJSON.h”,然后使用cJSON库中的函数解析JSON字符串。例如: ```c #include <stdio.h> #include "lib/cJSON.h" int main() { const char *json_string = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}"; cJSON *json = cJSON_Parse(json_string); cJSON *name = cJSON_GetObjectItem(json, "name"); cJSON *age = cJSON_GetObjectItem(json, "age"); cJSON *city = cJSON_GetObjectItem(json, "city"); printf("Name: %s\n", name->valuestring); printf("Age: %d\n", age->valueint); printf("City: %s\n", city->valuestring); cJSON_Delete(json); return 0; } ``` 这段代码将解析一个包含“name”、“age”和“city”字段的JSON字符串,并输出这些字段的值。 6. 在CLion中编译和运行代码,如果一切正常,应该可以看到正确的输出。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌上花开缓缓归以

你的鼓励将是我创作的最大动力,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值