[教程]使用 TQJsonInputChannel 来重复获取 JSON 对象

TQJsonInputChannel 是 QJson 新增的对象,目的是解决连续的JSON序列读取和超长的JSON数据内容读取处理的问题。

【基本步骤】

1、根据源的编码,创建对应的序列对象并设置相关事件:

2、从源中读取一块数据,然后推到 TQJsonInputChannel 实例中,不需要关心读取的块是否完整,TQJsonInputChannel 会自动检查,当收到一个完整的 JSON 数据时,会触发 OnJsonReady 事件,供上层处理。比如下面的代码是有效的:

上述代码生成的 JSON 对象:

【示例1:从流中加载】

假设流中包含下面的JSON序列:

我们创建一个流对象,从这个流中读取数据,就可以触发两次 OnJsonReady,收到两个 JSON 序列。

如果是下面格式的 JSON,我们只需要将第一个字符跳过即可。

上面的代码同样会触发两次 OnJsonReady,收到两个 JSON 序列。

分享到:

评论已关闭。