C/C++项目笔记整理
C/C++项目笔记整理
Emma-Zhang
这个作者很懒,什么都没留下…
展开
-
开源项目cJSON具体实现1(NULL 与 Boolean的解析)
先给项目网站cJSON download参考文章:知乎cJSON是什么?An ultra-lightweight, portable, single-file, simple-as-can-be ANSI-C compliant JSON parser.说白了就是一个超轻量级的json解析器。那么问题又来了,什么是json?更多详细信息点击:json.cn说简单点 json 采用完全独立...原创 2019-09-09 15:26:32 · 1393 阅读 · 0 评论 -
开源项目cJSON具体实现3(字符串的解析)
文章目录6. JSON 字符串语法6.1 JSON字符串的语法规则6.2 头文件设计6.3 test.c的设计6.3 实现解析器 leptjson.c6.5 拓展,关于内存泄漏的检测方法。6. JSON 字符串语法6.1 JSON字符串的语法规则JSON 字符串是由前后两个双引号夹着零至多个字符组成。字符分为 无转义字符 或 转义字符。其中转义序列有 9 种,都是以反斜线开始,如常见的 ...原创 2019-09-12 21:03:57 · 435 阅读 · 0 评论 -
开源项目cJSON具体实现4(转义字符串的解析)
参考文章:知乎文章目录7. Unicode7.1 ASCII、Unicode、UTF-8 介绍7.2 需求分析7.3 头文件7.3 test.c文件7.5 leptjson.c文件7. Unicode7.1 ASCII、Unicode、UTF-8 介绍在上一个部分,我们已经能解析「一般」的 JSON 字符串,仅仅没有处理 \uXXXX 这种转义序列。为了解析这种序列,我们必须了解有关 Un...原创 2019-09-14 21:11:36 · 1981 阅读 · 0 评论 -
开源项目cJSON具体实现5(数组的解析)
文章目录8. 数组8.1 数组语法与解释8.2 头文件8.3 test.c8.4 重头戏,lept_parse_array函数的编写。8.6 总结与练习8.7 编写test_parse_array()单元测试8.8 解析空白字符8.9 内存泄漏8.10 解析错误时的内存处理8. 数组8.1 数组语法与解释先来看看 JSON 数组的语法:array = %x5B ws [ valu...原创 2019-09-17 16:27:00 · 743 阅读 · 0 评论 -
开源项目cJSON具体实现6(对象的解析)
文章目录9. 对象9.1 JSON 对象语法头文件测试代码函数实现重构9. 对象本章实现的是JSON对象。JSON对象的实现和JSON数组的实现很是相似,我们可以对比着来看。9.1 JSON 对象语法JSON数组JSON对象JSON数组是由JSON值value组成JSON对象是由成员对象member组成,成员对象是键值对JSON数组是 [] 构成JSO...原创 2019-10-02 20:25:52 · 218 阅读 · 0 评论 -
开源项目--cJSON6--JSON生成器
文章目录头文件测试代码函数实现生成数字生成字符串生成数组和对象最终代码什么是JSON生成器?JSON生成器负责把树形数据结构转化为JSON文本,这个过程又称为字符串化(stringify)。头文件生成器的API:char* lept_stringify(const lept_value* v, size_t* length);在实现JSON解析的时候,我们加入了一个动态堆栈,用于存储...原创 2019-10-02 21:53:17 · 477 阅读 · 0 评论 -
开源项目cJSON(附带源码)
参考网站:1.cJSON网站2.从零开始的 JSON 库教程cJSON是超轻量级的JSON解析器。文章目录JSON项目cJSON功能:用法需求分析设计数据结构API 设计在介绍项目前,先说说JSON,如果你已经了解,可以跳过这一部分。JSONJSON介绍网站 json.org。JSON,即javascript对象表示法,是一种轻量级的数据交换格式,它基于JavaScript编程...原创 2019-10-06 13:08:56 · 1060 阅读 · 0 评论 -
开源项目cJSON具体实现2(数字的解析)
5.实现JSON 数字语法的解析。5.1 JSON number 的语法规则与解释。结合上一节我们说的JSON的语法规则,JSON number 的语法规则是这样的:JSON-text = ws value wsws = *(%x20 / %x09 / %x0A / %x0D)value = null / false / true / numbernull = "null"fals...原创 2019-10-06 13:14:36 · 658 阅读 · 0 评论