gpt4 book ai didi

json - 在 Go 中流式传输 BSON->JSON HTTP 回复?

转载 作者:IT王子 更新时间:2023-10-29 01:40:00 25 4
gpt4 key购买 nike

目前我正在 http 处理程序中运行它:

err := mongoCollection.Find(bson.M{"name": vars["name"]}).One(&result)
data, err := json.Marshal(result)
w.Write(data)

如何在完整的 BSON 数据进入之前开始提供结果?

编辑:答案需要超越 mgo 扩展并进入 bsonmgo 据我所知,如果我没有弄错的话,它只会提供完整的文档。我有一个 - 可能很大 - 文档,正如我的代码示例清楚地显示的那样。

最佳答案

为了使这成为可能,您需要这些东西:

  1. 访问传入 bson 流的 Reader
  2. 通用文档部分的数据类型
  3. bson 的流解码器,它从 Reader 读取并生成文档部分
  4. 一个用于 json 的流编码器,它使用文档部分并写入 Writer

mgo 没有提供数字 1。encoding/json 没有提供数字 2 或 4。mgo/bson 没有提供数字 3 . 尽管有其他语言的流式 json 解析器(参见 Is there a streaming API for JSON? 的答案),但对 Go 中的任何这些点都没有任何帮助。

您这样做的愿望是合理的,但支持尚不存在。幸运的是,json 和 bson 足够简单,而且您使用的所有组件都是开源的,因此理论上您可以编写所需的工具。

关于json - 在 Go 中流式传输 BSON->JSON HTTP 回复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23454783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com