从零开始的JSON库

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

从零开始的JSON库

小z同学   2020-04-04 我要评论
项目地址 [jsoncpp](https://github.com/zzzz76/jsoncpp) ,此项目受到 [leptjson](https://github.com/miloyip) 启发,实现了最基本的功能,仅作学习使用。 * 提供简单的 parse() 和 generate() 方法将 JSON 文本解析成对象,反之亦然 * 仅支持将基本类型为 Value 的 JSON 抽象语法树与 JSON 文本相互转换 * 使用标准 C/C++ 语言 (C++11) * 不依赖第三方库 ## 启动 启动此项目需要安装 gcc4.8 以上版本(支持c++11即可) ~~~shell rm *.o rm start g++ -w -c -std=c++11 jsonValue.cpp g++ -w -c -std=c++11 jsonGenerator.cpp g++ -w -c -std=c++11 jsonParser.cpp g++ -w -c -std=c++11 test.cpp g++ -w jsonValue.o jsonGenerator.o jsonParser.o test.o -o start ./start ~~~ ## 初步入门 如何解析一段json文本呢,我们可以先从更简单的问题开始思考。 ##### 1、给定长文本 "[1,2,3]" ,问如何才能得到一个数组? 当我们想通过解析函数的连续调用去处理一段长文本时,解析函数需要分两步实现: * step1 解析文本并更新文本指针。 * step2 若解析成功则返回解析结果。 这里只需要调用三次解析函数,最后遇到 ']' 结束即可 ~~~c++ class Parser{ char *txt; int parse_value() { /* 解析txt上下文 */ /* 返回一个数值 */ } } int main() { /* 建立parser */ while (*parser.txt != ']') { array[i] = parser.parse_value(); } } ~~~ ##### 2、给定长文本 "[1,2,[4,5]]" ,问如何才能得到一棵树? 同理,这里需要调用三次解析函数,最后遇到 ']' 结束即可 ~~~c++ typedef struct { int number; vector

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们