C语言解析json类型数据
转自:http://buluzhai.iteye.com/blog/845404 首先感谢作者!!
我使用的是cJSON:http://sourceforge.net/projects/cjson/
先看json的数据结构
c中没有对象,所以json数据是采用链表存储的
C代码如下:
1 typedef struct cJSON { 2 struct cJSON *next,*prev; // 数组 对象数据中用到 3 struct cJSON *child; // 数组 和对象中指向子数组对象或值 4 5 int type; // 元素的类型,如是对象还是数组 6 7 char *valuestring; // 如果是字符串 8 int valueint; // 如果是数值 9 double valuedouble; // 如果类型是cJSON_Number 10 11 char *string; // The item's name string, if this item is the child of, or is in the list of subitems of an object. 12 } cJSON;
比如你有一个json数据如下:
1 { 2 "name": "Jack (\"Bee\") Nimble", 3 "format": { 4 "type": "rect", 5 "width": 1920, 6 "height": 1080, 7 "interlace": false, 8 "frame rate": 24 9 } 10 }