cJSON
对于cJSON的使用,我主要是用来模拟远程服务器端返回的一个json类型的目录结构,客户端进行获取并进行解析,把解析出来的目录按照原本的结构显示在本地。
cJSON简介
cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器。
进入cJSON.h头文件中可以查看cJSON的相关信息。主要包括:cJSON结构体、cJSON类型、cJSON的一些内部的函数等。
// cJSON结构体:
typedef struct cJSON {
struct cJSON *next,*prev; // next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem
struct cJSON *child; // An array or object item will have a child pointer pointing to a chain of the items in the array/object.
int type; // The type of the item, as above.
char *valuestring; // The item's string, if type==cJSON_String
int valueint; // The item's number, if type==cJSON_Number
double valuedouble; // The item's number, if type==cJSON_Number
char *string; // The item's name string, if this item is the child of, or is in the list of subitems of an object.
} cJSON;
// 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
具体用法:
1、需要包含cJSON.h头文件,然后和cJSON.c或库文件libcJSON.a一起编译即可使用。
2、函数用法详见cJSON.h中的注释
cJSON构造与解析json结构体
基本代码如下:
#include
#include
#include
#include "cJSON.h"
char * create1()
{
cJSON *root,*dir1,*dir2,*dir3;
char *out;
//创建json数组型结构体
root = cJSON_CreateArray();
//为数组添加对象
cJSON_AddItemToArray(root,dir1=cJSON_CreateObject());
//为对象添加字符串键值对
cJSON_AddStringToObject(dir1,"name",".");
cJSON_AddStringToObject(dir1,"path","uploads/&