2020-01-09
关键字:cJSON、linux JSON解析
JSON 是一种在互联网领域内很常用的轻量级数据交换协议。
它与 XML 的地位差不多,但就笔者而言,笔者更喜欢 JSON 的风格,因为它更符合我们的思维习惯,同样一份数据,JSON 格式的就是比 XML 要清晰明了一些。
最近笔者需要在 C语言 上解析 JSON 格式,在网上一顿找,找到一份很不错的开源代码。经过一阵研究与修改以后,终于变成了让笔者用的很顺手的 C语言 版 JSON 解析器。
现将这份经笔者小小修改过的代码记录一下,一来想给自己作个备忘,二来希望能帮到有同样需求的同学。
这份源码以及一份简易 demo 被打包至博客园网盘:
https://files.cnblogs.com/files/chorm590/C%E8%AF%AD%E8%A8%80%E8%A7%A3%E6%9E%90JSON%E7%A4%BA%E4%BE%8B.zip
这个压缩内包含有两份源码文件:
1、cJSON 解析器原始版与示例以及 readme 说明
2、经笔者修改过的示例代码
这里仅以笔者修改过的代码来作简要讲解。
经笔者修改过的代码文件共有 3 个代码文件,如下图所示:
其中 demo.c 是演示程序,共编写了 3 种常见的 JSON 数据格式及其解析方式来展示 cJSON 的用法。整个示例程序非常简单,同学们稍加阅读定能领悟其用法。
在这个解析器中,所有的 JSON 节点都被抽象成是一个 cJSON 对象,即 cJSON 结构体:
如