cjson--生成/解析json文件、cjson 结构体(二)
发布日期:2021-07-26 10:17:48
浏览次数:7
分类:技术文章
本文共 1797 字,大约阅读时间需要 5 分钟。
第二篇 cjson–生成/解析json文件、cjson 结构体
C语言json开源解析库-cjson –
生成json文件
- 创建一个json对象
cJSON* cJSON_CreateObject(void)
- 往json对象中添加数据成员
void cJSON_AddItemToObject( DCJSON* pbject, //json对象 const char* string, //key值… cJSON *item //value在(int,string,array,obj));
- 创建一个整型值
cJSON* cJSON_CreateNumber(double num);
- 创建一个字符串
cJSON* cJSON_CreateString(const char* string);
- 创建一个json数组
cJSON* cJSON_CreateArray(void); //--空数组
- 创建默认有count个整形值的json数组
cJSON* cJSON_CreateIntArray(const int* numbers, int count);int arry[]={ 8, 3, 4, 5, 6};cJSON_CreatelntArray(arry, 5);
- 往json教组中添加数据成员
void cJSON_AddItemToArray(cJSON* array,CJSON* item);
- 释放json结构指针
void cJSON_Delete(CJSON* c);
- 将json结构转化为字符串 — (写到文件中)
char* cJSON_Print(cJSON* item);//返回值需要使用free释放FILE* fe=fopen();fwrite();fclose();
解析json文件
-
将字符串解析为JSON结构
cJSON* cJSON_Parse(const char* value);//返回值需要使用CJSON_Delete释放
-
根据键值查找json节点
cJSON* cJSON_GetObjectItem( cJSON* object, //当前json对象 const char* string //key值);
-
获取json数组中元素的个数
int cJSON_GetArraySize(cJSON* array);
-
根据数组下标找到对应的数组元素
cJSON* cJSON_CetArrayItem(cJSON* array,int index);
-
判新是否有可以值对应的键值对, 判断key值是否存在
int cJSON_HasObjectItem(cJSON* object,const char* string);
cJSON结构体
-
#define cJSON_Invalid(0)#define cJSON_False(1<<0)#define cJSON_True(1<<1)#define cJSON_NULL(1<<2)#define cJSON_Number(1<<3)#define cJSON_String(1<<4)#define cJSON_Array(1<<5)l#define cJSON_Object(1<6)#define cJSON_Raw(1<<7)/*The cJSON structure:*/typedef struct cJSON{ struct cJSON *next; /* 遍历数组或对象链的前向链表指针*/ struct cJSON *prev; /* 遍历数组或对象链的后向链表指针*/ struct cJSON *child; /*数组或对象的孩子节点*/ int type; /* key的类型*/ char *valuestring; /*字符串值*/ int valueint; /* 整数值*/ double valuedouble; /* 浮点数值*/ char *string; /* key的名字*/}JSON;
代码示例
转载地址:https://blog.csdn.net/qq_39557240/article/details/103425075 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2024年04月15日 08时05分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux文件管理参考
2019-04-27
FTP文件管理项目(本地云)项目日报(一)
2019-04-27
FTP文件管理项目(本地云)项目日报(二)
2019-04-27
FTP文件管理项目(本地云)项目日报(三)
2019-04-27
FTP文件管理项目(本地云)项目日报(四)
2019-04-27
【C++】勉强能看的线程池详解
2019-04-27
FTP文件管理项目(本地云)项目日报(七)
2019-04-27
FTP文件管理项目(本地云)项目日报(八)
2019-04-27
【Linux】血泪教训 -- 动态链接库配置方法
2019-04-27
FTP文件管理项目(本地云)项目日报(九)
2019-04-27
以练代学设计模式 -- FTP文件管理项目
2019-04-27
FTP文件管理项目(本地云)项目日报(十)
2019-04-27
学以致用设计模式 之 “组合模式”
2019-04-27
我用过的设计模式(7)--享元模式
2019-04-27
MySQL数据库从入门到实战应用(学习笔记一)
2019-04-27
MySQL数据库从入门到实战应用(学习笔记二)
2019-04-27
种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林
2019-04-27
【C++】攻克哈希表(unordered_map)
2019-04-27
转:【答学员问】- 该如何根据岗位学习相关技能
2019-04-27