我有一个具有REST API的Web应用程序,获取JSON作为输入并执行此JSON的转换。
这是我的代码:
func (a *API) getAssignments(w http.ResponseWriter, r *http.Request) {
var document DataPacket
err := json.NewDecoder(r.Body).Decode(&document)
if err != nil {
a.handleJSONParseError(err, w)
return
}
// transformations
我得到的JSON是结构的集合。外部应用程序使用我的应用程序,并向我发送非常大的json文件(300-400MB)。瞬间解码此json需要大量时间和大量内存。
有什么方法可以将此json作为流工作,并可以从该集合中一步一步地解码结构?
答案 0 :(得分:6)
首先,阅读文档。
导入“ encoding / json”
SELECT @@error_count
Decode从其输入中读取下一个JSON编码的值并将其存储 在v所指向的值中。
Example (Stream): This example uses a Decoder to decode a streaming array of JSON objects.
func (dec *Decoder) Decode(v interface{}) error