QJson与QMsgPack中的RTTI调用演示

QJson和QMsgPack提供了对RTTI的支持,让你可以简洁方便的完成数据的转换存贮。因为QJson和QMsgPack在RTTI接口上是一致的,因此本文以QJson为例予以说明,如果要换成QMsgPack,只需要将类型声明换下就好:)。

1、记录类型

我们提供了FromRecord/ToRecord两个函数来完成记录类型的读写操作。FromRecord将一个记录类型的内容转储到QJson或QMsgPack中,ToRecord是从QJson或QMsgPack中恢复记录的内容。

下面是一个FromRecord的简单例子:

FromRecord

 

ToRtti的例子(接上面的例子):

ToRecord

2、对象

我们使用FromRtti和ToRtti两个函数来完成对记录类型的读写操作。同上,FromRtti将一个对象转储到QJson或QMsgPack中,ToRtti是从QJson或QMsgPack中恢复对象的内容。

FromRtti

ToRtti的例子:

ToRtti

3、调用函数

我们提供Invoke函数来直接使用QJson或QMsgPack的数据来调用一个函数,函数名由当前结点的名称来确定,参数由子结点提供,QJson或QMsgPack按名称对应到函数的参数中,然后完成调用并返回结果。

Invoke的调用示例:

Invoke

 

分享到: