我想使用 rapidjson 编写一个嵌套处理程序来消费 json。
我已经按照官方 simplereader 示例的方式对我的基本处理程序进行了建模。这对于平面结构来说很好,但现在我还需要将解析扩展到嵌套对象。
在我看来,我可以
- 有一个中央处理程序来跟踪各种域对象以创建和随后将值解析到,或者
- 我可以在解析时更改处理程序
从技术上讲,我知道如何做 1.,但 2. 似乎是一个更简洁的解决方案,如果可能的话。
是否可以在中途更改处理程序?是否有这样做的最佳实践?
谢谢!
我想使用 rapidjson 编写一个嵌套处理程序来消费 json。
我已经按照官方 simplereader 示例的方式对我的基本处理程序进行了建模。这对于平面结构来说很好,但现在我还需要将解析扩展到嵌套对象。
在我看来,我可以
从技术上讲,我知道如何做 1.,但 2. 似乎是一个更简洁的解决方案,如果可能的话。
是否可以在中途更改处理程序?是否有这样做的最佳实践?
谢谢!
您可以将事件委托给其他处理程序。这通常通过以下方式完成:
在您的自定义处理程序内部应用状态模式。这样处理程序就可以通过多态(又名虚函数)将事件委托给当前状态对象。
switch-case
用于使用enum
.
如果您需要处理递归结构,第一个具有优势。您可以将状态对象的指针压入堆栈。