一、json是什么?
1.简介
1.json指的是JavaScript对象表示法(JavaScript Object Notation) 2.josn是轻量级的文本数据交换格式 3.json独立于语言 4.json具有自我描述性,更易理解 5.json 使用 JavaScript 语法来描述数据对象,但是 json 仍然独立于语言和平台。json 解析器和 json 库支持许多不同的编程语言。
2.json的语法规则
json的语法规则:https://www.runoob.com/json/json-syntax.html
二、cJSON
1.简介
cJSON是一个超轻巧,携带方便,单文件,简单的可以作为ANSI-C标准的JSON解析器。
我们在使用JSON格式时,如果只是处理简单的协议,可以依据JSON格式,通过对字符串的操作来进行解析与创建。然而随着协议逐渐复杂起来,经常会遇到一些未考虑周全的地方,需要进一步的完善解析方法,此时,使用比较完善的JSON解析库的需求就提出来了。
基于方便引用的考虑,我们希望这个JSON解析库是用C语言实现的。同时,为了避免太过复杂的C源码包含关系,希望最好是一个C文件来实现。通过在网络上的查找,发现cJSON是比较符合要求的。cJSON只有一个C文件,一个头文件,包含到项目源码中非常方便,而且其实现效率也是非常高的。
2.下载
git clone https://github.com/DaveGamble/cJSON.git
cd cJSON
把这两个放入你的项目中即可。 编译时加上选项-lm 因为cJSON源码中用到了math库。
3.cJSON
在这里只讲一些项目中用到的一些API。 详细请参考:https://blog.csdn.net/makunIT/article/details/107199000 如果博客看不懂或者有疑问,请打开源码:vim cJSON.h ,vim cJSON.c 仔细阅读,此源码并不复杂。
cJSON *cJSON_CreateObject()
void cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item)
char *cJSON_Print(cJSON *item)
void cJSON_Delete(cJSON *c)
说明: 添加操作的底层都是这个函数,只不过起了一个新的名字,所以我们只学习这一个函数:**void cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item)**即可。
4.实例
|