原文鏈接
http://blog.csdn.net/itisyang/article/details/53190850
cJSON源碼
https://github.com/DaveGamble/cJSON
JSON介紹
http://www.json.org/json-zh.html
cJSON源文件僅
cJSON.c
cJSON.h
- typedef struct cJSON {
- struct cJSON *next,*prev; // 數組 對象數據中用到
- struct cJSON *child; // 數組 和對象中指向子數組對象或值
- int type; // 元素的類型,如是對象還是數組
- char *valuestring; // 如果是字符串
- int valueint; // 如果是數值
- double valuedouble; // 如果類型是cJSON_Number
- char *string; // “鍵”的名稱
- } cJSON;
- {
- "name": "Jack (\"Bee\") Nimble",
- "format": {
- "type": "rect",
- "width": 1920,
- "height": 1080,
- "interlace": false,
- "frame rate": 24
- }
- }
- cJSON *root = cJSON_Parse(my_json_string);
- cJSON *format = cJSON_GetObjectItem(root,"format");
- int framerate = cJSON_GetObjectItem(format,"frame rate")->valueint;
- char *rendered=cJSON_Print(root);
- cJSON_Delete(root);
- cJSON *root,*fmt;
- root=cJSON_CreateObject();
- cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble"));
- cJSON_AddItemToObject(root, "format", fmt=cJSON_CreateObject());
- cJSON_AddStringToObject(fmt,"type", "rect");
- cJSON_AddNumberToObject(fmt,"width", 1920);
- cJSON_AddNumberToObject(fmt,"height", 1080);
- cJSON_AddFalseToObject (fmt,"interlace");
- cJSON_AddNumberToObject(fmt,"frame rate", 24);
- typedef struct cJSON {
- struct cJSON *next,*prev; // 數組 對象數據中用到
- struct cJSON *child; // 數組 和對象中指向子數組對象或值
- int type; // 元素的類型,如是對象還是數組
- char *valuestring; // 如果是字符串
- int valueint; // 如果是數值
- double valuedouble; // 如果類型是cJSON_Number
- char *string; // “鍵”的名稱
- } cJSON;
- {
- "name": "Jack (\"Bee\") Nimble",
- "format": {
- "type": "rect",
- "width": 1920,
- "height": 1080,
- "interlace": false,
- "frame rate": 24
- }
- }
- cJSON *root = cJSON_Parse(my_json_string);
- cJSON *format = cJSON_GetObjectItem(root,"format");
- int framerate = cJSON_GetObjectItem(format,"frame rate")->valueint;
- char *rendered=cJSON_Print(root);
- cJSON_Delete(root);
- cJSON *root,*fmt;
- root=cJSON_CreateObject();
- cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble"));
- cJSON_AddItemToObject(root, "format", fmt=cJSON_CreateObject());
- cJSON_AddStringToObject(fmt,"type", "rect");
- cJSON_AddNumberToObject(fmt,"width", 1920);
- cJSON_AddNumberToObject(fmt,"height", 1080);
- cJSON_AddFalseToObject (fmt,"interlace");
- cJSON_AddNumberToObject(fmt,"frame rate", 24);