CJSON 开发详情与使用教程
开发灵感
考研学烦了于是想着重新将之前写的游戏引擎实现一遍,其间需要用到json解析的库,想到自己之前使用c实现过一个json解析库,遂以c++重写而成此库。
再写json库的时候最大的难度在于如何设计接口。经过调查他人的json库以及结合自己对json解析的需求选择了使用
**[],(),-,{}**来进行操作。这样再增加可读性的同时还可以增强我对c++的认知。
使用
首先下载json.hpp,将这个文件单独添加进你的项目中。
more
开发介绍。
两个数据结构
JSON_DATA
JSON_DATA是一个结构体,其负责存放一个json数据。json的重点在于如何将json的数据进行良好的组织来增强易用性。JSON_DATA可以使用初始化列表进行构建,即使用**{}**的形式,但你没有必要直接使用JSON_DATA,因为关于JSON_DATA的操作时隐性的,你可以通过 Operator 来进行一切你想要的操作。
JSON数据分为如下的类型:
1 | JSON_TYPE_NULL, |
JSON_DATA默认初始化的type为JSON_TYPE_NULL。你可以使用如下的方式将其初始化:
1 | typedef struct JSON_DATA Json_data |
JSON
- 解析
1 | JSON::Json js; |
- 获取操作句柄
1 | JSON::Operator& op = js.get_operator(); |
- 读取数据
1 | //获取string |
- 写入数据
1 | //测试进行写入 |
- 字符串化
1 | js.stringify("set_value.json"); |