json-tutorial icon indicating copy to clipboard operation
json-tutorial copied to clipboard

参照教程写了一个C++版本,大家看一下有什么错误的地方和需要修改的地方。交流交流

Open Yuan-Hang opened this issue 7 years ago • 6 comments

参照教程的思路,使用C++实现了一下。初学者可能有不正确的地方,大家提提意见。 https://github.com/Yuan-Hang/Json

Yuan-Hang avatar Apr 21 '17 04:04 Yuan-Hang

阅读了你的源码,值得学习,非常感谢! 另外,在C++ 17标准中,有了std::variant,用这个应该能简化你jsonValue.h中定义了那一系列表示不同类型节点的子类。相当于我们只有一个节点类型JsonValue,其成员是一个std::variant。然后根据不同的重载构造函数,即可确定variant的真正类型。

ShuhuaGao avatar Oct 22 '17 13:10 ShuhuaGao

学习了一下你的代码,我觉得不必通过继承的方式来得到各种不同Value,直接在Value里面添加一个union即可,这样我们只需要一个Value具体类

aixi avatar Jul 16 '18 13:07 aixi

@ShuhuaGao 谢谢指正, std::variant确实很方便. 我当初实现的时候选择继承的主要原因是为了练手.若是为了实现方便简洁, 使用标准库提供的新功能确实很不错.

Yuan-Hang avatar Jul 18 '18 13:07 Yuan-Hang

@aixi 在union里面的元素有构造函数的时候, 实现还是有点儿小复杂. 你可以看看union里面放入std::string之内的尝试一下

Yuan-Hang avatar Jul 18 '18 13:07 Yuan-Hang

在@Yuan-Hang 的实现基础上,对JsonValue去除继承体系,加入std::varient的cpp版本,欢迎交流https://github.com/zsmj2017/MiniJson

zsmj2017 avatar Aug 27 '18 08:08 zsmj2017

还是 c++ 清爽点~

yanfengneng avatar May 20 '22 13:05 yanfengneng