MyJson简介

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

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

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

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

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

你可能感兴趣的:(MyJson简介)