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 關注
- 124 瀏覽
添加回答
舉報