我正在構(gòu)建一個(gè) http api 并且我的每個(gè)處理程序都返回 JSON 數(shù)據(jù),因此我構(gòu)建了一個(gè)包裝器函數(shù)來(lái)處理 JSON 編組和 http 響應(yīng)(我已經(jīng)包含了包裝器中的相關(guān)部分以及示例處理程序之一以下)。傳遞任意嵌套結(jié)構(gòu)的最佳方法是什么(結(jié)構(gòu)還包含任意類(lèi)型/數(shù)量的字段)?,F(xiàn)在我已經(jīng)確定了一個(gè)帶有字符串鍵和 interface{} 值的映射。這有效,但這是最慣用的方法嗎?result := make(map[string]interface{})customerList(httpRequest, &result)j, err := json.Marshal(result)if err != nil { log.Println(err) errs := `{"error": "json.Marshal failed"}` w.Write([]byte(errs)) return}w.Write(j)func customerList(req *http.Request, result *map[string]interface{}) { data, err := database.RecentFiftyCustomers() if err != nil { (*result)["error"] = stringifyErr(err, "customerList()") return } (*result)["customers"] = data//data is a slice of arbitrarily nested structs}
- 1 回答
- 0 關(guān)注
- 214 瀏覽
添加回答
舉報(bào)
0/150
提交
取消