[教程]使用 TQJsonOutputChannel 写入 JSON 数据到流中

TQJsonOutputChannel 的主要作用是用来快速写入大型的 JSON 数据到文件中,所以整体是面向写入过程设计的,不要试图用它来控制内容的修改。

假设我们要将数据内容写入到目标数据流 AStream 中:

第一步:我们需要定义一个 IQJsonStreamEncoder 的实例,它是一个结构体,所以直接在栈上定义这个变量即可。

第二步:创建实例并建立与目标数据流的关联:

还有一个最大层数限制,默认为32,可以通过第三个参数修改。

第三步:开始按照正常的规则写入 JSON 数据。

  • 调用 BeginArray 开始一个数组定义,它必需在元素输出完成后,对应一个 EndArray 调用来标志此数组输出结束。也可以使用 WriteArray 来定义数组。
  • 调用 BeginObject 开始一个对象定义,它必需在子结点输出完成后,对应一个 EndObject 调用来标志此对象输出结束。也可以使用 WriteObject 来定义对象。
  • 调用 WriteElement 方法写入数组元素的值
  • 调用 WriteChild 方法写入普通类型的值

第四步:已经完事了,补充一点吧,这个写入的JSON是以压缩格式写入的,没有加入缩进支持。可以用TQJsonInputChannel 来顺序读取。

最后,来一段示例代码,Show you my code:

分享到:

评论已关闭。