1 回答
TA贡献1866条经验 获得超5个赞
将附加信息、代理和右括号写入响应:
io.WriteString(w, "{")
io.WriteString(w, AdditionalInfo)
json.NewEncoder(w).Encode(AllAgents)
io.WriteString(w, "]}") // closing ] for data and closing } for root
[ ]请注意,这对代理进行了两个级别的编码。目前还不清楚这是否是您想要的。
另一种方法是创建一个与输出结构匹配的 Go 值并对其进行编码:
v := map[string]interface{}{
"meta": map[string]interface{}{
"page": 1,
"pages": 1,
"perpage": -1,
"total": 350,
"sort": "asc",
"field": "RecordID",
},
"data": AllAgents,
}
if err := json.NewEncoder(w).Encode(v); err != nil {
// handle error
}
同样,不清楚您希望在代理周围嵌套多少。您可能需要这种变化:
v := map[string]interface{}{
"meta": map[string]interface{}{
"page": 1,
"pages": 1,
"perpage": -1,
"total": 350,
"sort": "asc",
"field": "RecordID",
},
"data": []interface{}{AllAgents},
}
if err := json.NewEncoder(w).Encode(v); err != nil {
// handle error
}
回复:效率创建最终大小的切片通常比使用append. 通过使用指针切片[]*SingleAgent而不是结构值切片可能会获得一些效率[]SingleAgent。
- 1 回答
- 0 关注
- 90 浏览
添加回答
举报