美文网首页
cJOSN使用(C语言解析 json数据)

cJOSN使用(C语言解析 json数据)

作者: zzkdev | 来源:发表于2018-02-05 15:48 被阅读0次

因为要解析json,为了避免重复造轮子就查找了C语言解析json的库(虽然我也想自己写一个解析json的库,可能在我把我的项目完成后会自己做一个。),然后就决定使用cJSON这个库,因为它比较轻量级上手也快,学会几个函数调用就可以解析json了,下面是json的简单使用和介绍。

cJSON是C语言的一个轻量级的一个json解析库。下载地址在这里

下面是cJSON中json的数据结构

typedef struct cJSON {

struct cJSON *next,*prev;                     

//上(下)一个节点

struct cJSON *child;                       

//子节点

int type;       

//元素类型

char *valuestring;                               

//如果元素是字符串的值

int valueint;

//如果元素是整形的值

double valuedouble;                             

//如果元素是浮点型的值

char *string;                               

//字段名称

} cJSON;

type在cJSON中定义了七种类型

#define cJSON_False 0

#define cJSON_True 1

#define cJSON_NULL 2

#define cJSON_Number 3

#define cJSON_String 4

#define cJSON_Array 5

#define cJSON_Object 6

cJSON通过cJSON_Parse()函数传入字符串创建cJSON链表(双向)并返回cJSON指针。

下面是解析流程

1.先将字符串处理成cJSON对象

char *js_string = "{\"status\":\"1\",\"info\":\"OK\",\"infocode\":\"10000\"}";

cJSON *root;

root = cJSON_Parse(js_string);

2.通过字段名称获取值

cJSON *json_status, *json_info;

json_status = cJSON_GetObjectItem(root, "status");

json_info = cJSON_GetObjectItem(root, "info");

printf("status:%s, info:%s\n", json_status->valuestring, json_info->valuestring);

3.释放cJSON链表

cJSON_Delete(root);

其他函数介绍

1.将json结构体转化成字符串

printf(cJSON_Print(root));


奇变偶不变,符号看象限

------------------------------鲁迅


水出我第二篇文章了哈哈哈哈


给我点十个赞我就买瓶可乐庆祝下

相关文章

网友评论

      本文标题:cJOSN使用(C语言解析 json数据)

      本文链接:https://www.haomeiwen.com/subject/vxxizxtx.html