MyJson简介

1:知道什么是json文件
采用vector<char>代替char*,从而实现动态内存管理,避免了手动管理char数组。

基类采用多态机制,使用Parse函数来解析字符串。每个子类都实现该函数,从而实现动态调用

基类实现ParseValue函数,该函数是解析json字符串的核心,通过字符串不同的特征生成不同的Item,并调用Item各自的Parse函数。

数组:
采用vector<CBaseItem*>结构作为存储数组内元素的容器。因为需要根据下标获取元素。
数组重写了基类的Parse函数,该函数负责解析数组内部内容,数组的ParseItem首先调用基类的ParseValue函数,该函数再递归的解析数组内部的元素。
因此整个流程是这样的
数组调用Parse函数,该函数对数组内的每个元素调用ParseItem函数,ParseItem函数再调用基类实现的ParseValue函数,递归的解析。

对象:
对象采用Map存储对象的元素,因为会有根据key来查找value的,所以用mao最合适,其中key为字符串,value为CBaseItem*。
对象也实现了Parse函数,该函数内部也是不断的调用ParseItem函数来解析对象的子元素。
ParseItem函数又分为两个部分,首先先解析key(key为字符串,所以调用字符串的Parse函数),然后调用基类的ParseValue函数解析Value。
并将结果放入Map容器中。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 又是一周紧张的工作结束了,每天很晚睡觉,简书也落下了。 明天即将开始新的一周,所以我今天再晚也要为这一周做...
    静等花开之心路阅读 401评论 7 7
  • 现在我大三上,还在做着笑递(服务于高校师生的物品互助代送信息平台)的事业。但大三,学业繁忙,作业项目颇多,...
    雪之音阅读 318评论 2 3
  • 付出太多,主动太久都会感到心累,久而久之便想放弃。真心爱你的人又怎会忍心让你一个人一直在付出,真心爱你的人又怎...
    小雨的天空睛朗阅读 293评论 0 0