cJSON库介绍及编程实例
2014-01-02 16:04
309 查看
JSON是一种轻量级的数据交换格式,基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。易于人阅读与编写,同时也易于机器解析和生成。
cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器。
cJSON下载地址:点击打开链接
查看cJSON代码可以看到,cJSON结构体如下:
cJSON以双链表的形式存储。
共有7种类型:
cJSON实例:
编译:把cJSON.c和cJSON.h放在编写代码目录下,同时编译cJSON和工作代码:gcc cJSON.c test.c -o test -lm
运行结果:
cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器。
cJSON下载地址:点击打开链接
查看cJSON代码可以看到,cJSON结构体如下:
typedef struct cJSON { struct cJSON *next,*prev; struct cJSON *child; int type; char *valuestring; int valueint; double valuedouble; char *string; } cJSON;
cJSON以双链表的形式存储。
共有7种类型:
/* cJSON Types: */ #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实例:
#include<stdio.h> #include<stdlib.h> #include"cJSON.h" int main(int argc,const char *argv[]) { cJSON *root,*fmt,*json,*format; char *out; int i; //创建JSON字符串 root = cJSON_CreateObject(); cJSON_AddItemToObject(root,"name",cJSON_CreateString("Jack")); cJSON_AddItemToObject(root,"format",fmt = cJSON_CreateObject()); cJSON_AddStringToObject(fmt,"type","rect"); cJSON_AddNumberToObject(fmt,"width",1000); cJSON_AddNumberToObject(fmt,"height",2000.123); // cJSON_AddFalseToObject(fmt,"interlace"); cJSON_AddNumberToObject(fmt,"frame rate",24); out = cJSON_Print(root); //out中保存的是JSON格式的字符串 cJSON_Delete(root); //删除cJSON printf("%s\n",out); //终端打印输出 json = cJSON_Parse(out); //解析JSON格式的字符串 free(out); //释放字符串空间 if(!json) { printf("Error before:[%s]\n",cJSON_GetErrorPtr()); } else { //提取出各个数据并打印输出 char *name = cJSON_GetObjectItem(json,"name")->valuestring; printf("name: %s\n",name); format = cJSON_GetObjectItem(json,"format"); char *type = cJSON_GetObjectItem(format,"type")->valuestring; printf("type: %s\n",type); int width = cJSON_GetObjectItem(format,"width")->valueint; printf("width: %d\n",width); double height = cJSON_GetObjectItem(format,"height")->valuedouble; printf("width: %f\n",height); int framerate = cJSON_GetObjectItem(format,"frame rate")->valueint; printf("framerate: %d\n",framerate); } }
编译:把cJSON.c和cJSON.h放在编写代码目录下,同时编译cJSON和工作代码:gcc cJSON.c test.c -o test -lm
运行结果:
相关文章推荐
- javascript获取frameset中各个模块中的数据
- [转]Loading, Editing, and Saving a Text File in HTML5 Using Javascript
- js判断浏览器类型
- extjs4.1后台管理图标修改。
- 45个实用的JavaScript技巧、窍门和最佳实践
- jsf初学selectOneMenu 绑定与取值
- ASP.net关于C#代码与javaScript函数的相互调用
- Replacing MVC JavascriptSerializer with JSON.NET J
- JavaScript中Math对象方法使用概述
- javascript的使用(6)formvalid表单验证
- JS三元
- [Jweb] JSP-编程 04 转向 jsp:forward 与 sendRedirect
- [Jweb] JSP-编程 04 转向 jsp:forward 与 sendRedirect
- 使用 JavaScript File API 实现文件上传
- 用js判断用户名cookie是否存在的正确方法
- javaScript图片切换和字符串
- JS保存、删除cookie操作
- javascript 获取样式必杀技
- JS延迟加载加快页面打开速度示例代码
- javaScript的使用(5)DOM事件