在做的项目需要发JSON格式的消息并解析,因此学习了利用cJSON解析JSON格式,该格式易于人阅读和编写。同时也易于机器解析和生成。
语法:键 / 值
1、以 { 开始,以 } 结束,允许嵌套使用
2、每个键和值成对出现,并使用:分隔。如"age"=23
3、键值对之间用 ,分隔
值的多种类型:
字符串:用 " "
数字:整数或浮点数都直接表示
数组:用[ ]
布尔值:fault、true
gitee仓库:https://gitee.com/peng-jiaweibabe/c-json
cJSON的.c和.h文件,使用的时候,只需要将这两个文件复制到工程目录,然后包含头文件cJSON.h即可。即#include "cJSON.h"
如若出现该情况,链接math库即可
CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value)
函数功能:将一个JSON字符串,按照cJSON结构体的结构序列化整个数据包,并在堆中开辟一块内存存储cJSON结构体
返回值:成功返回一个指向内存块中的cJSON的指针,失败返回NULL
CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item) //按JSON格式打印
CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item) //不按JSON格式打印
函数功能:将整条链表中存放的JSON信息输出到一个字符串中,使用时只需用一个字符串指针(char *)接收该函数返回的指针地址即可。
返回值:成功返回一个char*指针并指向位于堆中JSON字符串,失败返回NULL
CJSON_PUBLIC(void) cJSON_Delete(cJSON *c)
函数功能:释放位于堆中cJSON结构体内存
返回值:无
(cJSON *) cJSON_GetObjectItem(const cJSON * const object, const char * const string)
函数功能:根据键值对的名称从链表中取出对应的值,返回该键值对(链表节点)的地址
返回值:成功返回一个指向内存块中的cJSON的指针,失败返回NULL
结果:
结果:
结果:
三层键值
结果:
到此这篇关于C语言利用cJSON解析JSON格式的文章就介绍到这了,更多相关cJSON解析JSON格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/16375.html