cjson--生成/解析json文件、cjson 结构体(二)
发布日期:2021-07-26 10:17:48 浏览次数:7 分类:技术文章

本文共 1797 字,大约阅读时间需要 5 分钟。


第二篇 cjson–生成/解析json文件、cjson 结构体

C语言json开源解析库-cjson –

生成json文件

  1. 创建一个json对象
    cJSON* cJSON_CreateObject(void)
  2. 往json对象中添加数据成员
    void cJSON_AddItemToObject(	DCJSON* pbject,       //json对象	const char* string,   //key值…	cJSON *item           //value在(int,string,array,obj));
  3. 创建一个整型值
    cJSON* cJSON_CreateNumber(double num);
  4. 创建一个字符串
    cJSON* cJSON_CreateString(const char* string);
  5. 创建一个json数组
    cJSON* cJSON_CreateArray(void); //--空数组
  6. 创建默认有count个整形值的json数组
    cJSON* cJSON_CreateIntArray(const int* numbers, int count);int arry[]={
    8, 3, 4, 5, 6};cJSON_CreatelntArray(arry, 5);
  7. 往json教组中添加数据成员
    void cJSON_AddItemToArray(cJSON* array,CJSON* item);
  8. 释放json结构指针
    void cJSON_Delete(CJSON* c);
  9. 将json结构转化为字符串 — (写到文件中)
    char* cJSON_Print(cJSON* item);//返回值需要使用free释放FILE* fe=fopen();fwrite();fclose();

解析json文件

  1. 将字符串解析为JSON结构

    cJSON* cJSON_Parse(const char* value);//返回值需要使用CJSON_Delete释放
  2. 根据键值查找json节点

    cJSON* cJSON_GetObjectItem(    cJSON* object,     //当前json对象    const char* string  //key值);
  3. 获取json数组中元素的个数

    int cJSON_GetArraySize(cJSON* array);
  4. 根据数组下标找到对应的数组元素

    cJSON* cJSON_CetArrayItem(cJSON* array,int index);
  5. 判新是否有可以值对应的键值对, 判断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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:QT中的json(三)
下一篇:json文件格式、常见c/c++的json库(一)

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月15日 08时05分48秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章