json-tutorial
json-tutorial copied to clipboard
参照教程写了一个C++版本,大家看一下有什么错误的地方和需要修改的地方。交流交流
参照教程的思路,使用C++实现了一下。初学者可能有不正确的地方,大家提提意见。 https://github.com/Yuan-Hang/Json
阅读了你的源码,值得学习,非常感谢! 另外,在C++ 17标准中,有了std::variant,用这个应该能简化你jsonValue.h中定义了那一系列表示不同类型节点的子类。相当于我们只有一个节点类型JsonValue,其成员是一个std::variant。然后根据不同的重载构造函数,即可确定variant的真正类型。
学习了一下你的代码,我觉得不必通过继承的方式来得到各种不同Value,直接在Value里面添加一个union即可,这样我们只需要一个Value具体类
@ShuhuaGao 谢谢指正, std::variant确实很方便. 我当初实现的时候选择继承的主要原因是为了练手.若是为了实现方便简洁, 使用标准库提供的新功能确实很不错.
@aixi 在union里面的元素有构造函数的时候, 实现还是有点儿小复杂. 你可以看看union里面放入std::string之内的尝试一下
在@Yuan-Hang 的实现基础上,对JsonValue去除继承体系,加入std::varient的cpp版本,欢迎交流https://github.com/zsmj2017/MiniJson
还是 c++ 清爽点~