【发布时间】:2020-08-24 13:33:07
【问题描述】:
我有与这个问题相反的问题。
在该问题中,用户询问解码一个大型传入 JSON 数组。
但是,我将如何编码一个大的传出 JSON 数组?
例如,我有一个这样的http.Handler。
enc := json.NewEncoder(resp)
for obj := range objectChannel {
enc.Encode(obj)
}
但是,这不起作用,因为它最终会向 JavaScript 客户端发送无效的 JSON。
我必须手动修复语法吗?例如:
enc := json.NewEncoder(resp)
fmt.Fprint(resp, "[")
for obj := range objectChannel {
enc.Encode(obj)
fmt.Fprint(resp, ",") // and account for the last item
}
fmt.Fprint(resp, "]")
或者有没有更好的方法?
【问题讨论】:
-
与github.com/golang/go/issues/7872相关...没有解决方案..
-
当您现在使用频道时,是的,您提供的解决方案很好,因为它简单高效。
-
当它被打印到一个 http responsewriter 中时,不要忘记刷新。见stackoverflow.com/a/19292461/4466350
-
是的,你是对的。