![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
json
文章平均质量分 87
流星画魂
2020年6月开始接触编程
展开
-
lept_json的学习之API
lept_json的学习之API这一节就整理一下所有的api先从整个JSON开始Parse用户只能用到parse,像parse_value、parse_whitespace之类就属于内部函数了int lept_parse(lept_value& v, const char* json){ lept_context c; int ret; assert(&v != NULL); c.json = json; c.stack = NULL;//初始化堆栈 c.size =原创 2022-04-21 15:27:22 · 454 阅读 · 0 评论 -
lept_json的学习之stringify
lept_json的学习之stringify这一节我们讲解所有类型的生成Stringify。其实stringify的意思本不是生成,而是字符串化,但为了方便理解,我直接称之为生成(generate)也是可以的。Stringify生成器它生成得好,可以生成出很整洁的字符串,方便我们阅读,不过在这里我们只进行字符生成,不进行排版操作,所以最后生成出来的就是一长串的挤在一行里的字符串。在这里我们也能想到,生成器的操作就是解析器反过来,所以它大致的架构也是一个循环里套一个switch语句。这里为了代码原创 2022-04-21 14:22:21 · 448 阅读 · 0 评论 -
lept_json的学习之parse_object
lept_json学习之parse_object这一节讲parse_object数据结构JSON的Object 是以键值对的方式存储的。{ key:value}这里我们默认key为JSON字符串。要表示键值对的集合,数据结构有很多种:动态数组(dynamic array):可扩展容量的数组,如 C++ 的 std::vector。有序动态数组(sorted dynamic array):和动态数组相同,但保证元素已排序,可用二分搜寻查询成员。平衡树(balanced tree):平衡二叉原创 2022-04-21 13:10:48 · 971 阅读 · 0 评论 -
lept_json的学习之parse_array
lept_json库的学习array这一节将parse_array原创 2022-04-21 11:31:50 · 727 阅读 · 0 评论 -
lept_json的学习之JSON
lept_json库的学习1从两个星期前开始,在github上跟着叶劲峰老师的lept_json学习了一遍,现在来回顾一下整个过程,做些笔记之类的。本人的记录风格是废话一大堆,所以不爱看的可以骂我。一、 什么是JSON一开始我是完全不知道json是什么的,在我初步了解完c语言,而c++还没学多少的时候,我就在github上看到了这个项目,当时看到个#ifndefine都是懵的,看叶老师讲为什么宏要写在do{}while里面看了半天。现在看来,其实懂了就是懂了,没懂就去看懂。JSON呢,主要有两原创 2022-04-16 18:16:25 · 412 阅读 · 1 评论 -
lept_json库的学习之parse_string
lept_json库的学习4这一章我们来讲字符串的解析Parse_String首先,我们先来探讨一下解析字符串可能会遇到的问题:问题一:小明到底说了什么?比如说,我想要在字符串里包含""双引号,这是很正常的,举个例子:"//这是context识别的头双引号小明对小红说:"长大后,我就要娶做我老婆。""//这是context识别的尾双引号如果我是用json保存一段剧本(文本信息)那么包含双引号就是很自然的事情,但是对于电脑来说,如果我们不特别指名,电脑可能会解析为:"//这是context原创 2022-04-20 18:41:56 · 537 阅读 · 0 评论 -
lept_json的学习之parse_number
lept_json库的学习3上一篇我们讲完了Parse()里的Null/Bool两种类型的解析函数。这一篇我们就讲下Number类型的解析函数一、Number语法要想写好解析器,我们脑子里必须要有一个Number的语法框架。整数 123负数 -123浮点数 123.3小数 0.123科学计数法 1E10、1E-10这里不得不用这张路径图来直观的表示一下了,因为这张图真的很直观。跟着这张路径图,我们可以大致的写出number的解析函数: //直接很粗暴的定义了一个宏来判断ch是否是数字原创 2022-04-17 21:09:33 · 374 阅读 · 0 评论 -
lept_json的学习之parse和parse_null/bool
lept_json库的学习2上一篇讲了JSON库主要有Parse和Stringify两个功能,我先来讲讲Parse,因为叶老师说Parse搞定了,Stringify很简单。Parse()函数架构跳过空白函数()Parse_Value函数()跳过空白函数()举个例子" {object}"我实际上是怎么敲的呢?把我的操作换成转义字符:“\n\t{object}\n" —————这里暂时不考虑花括号{…}里的空白WhiteSpace那么整个parse函数就只需要三步:原创 2022-04-16 23:40:10 · 357 阅读 · 0 评论