type APIResponse struct { Results []Result `json:"results,omitempty"` Paging Paging}type Result struct { Id string `json:"id"`, Name string `json:"name"`,}type Paging struct { Count int `json:"count"` Previous string `json:"previous"` Next string `json:"next"`}func Get(ctx context.Context) APIResponse[T] { results := APIResponse{} rc, Err := r.doRequest(ctx, req) if rc != nil { defer rc.Close() } err = json.NewDecoder(rc).Decode(&results) return results}示例 JSON 如下所示:{ "count": 70, "next": "https://api?page=2", "previous": null, "results": [ { "id": 588, "name": "Tesco", }...我希望它被解碼為 APIResponse 形式的結(jié)構(gòu),其中分頁元素是一個子結(jié)構(gòu),就像結(jié)果一樣。但是,在示例 JSON 中,分頁方面沒有父 json 標記。它如何被解碼成它自己的獨立結(jié)構(gòu)?目前,如果我將 Count、Next 和 Previous 提升到 APIResponse 中,它們會出現(xiàn),但當它們是子結(jié)構(gòu)時不會出現(xiàn)。
1 回答

慕婉清6462132
TA貢獻1804條經(jīng)驗 獲得超2個贊
將您的Paging結(jié)構(gòu)直接嵌入到APIResponse以下內(nèi)容中:
type APIResponse struct {
Results []Result `json:"results,omitempty"`
Paging
}
type Result struct {
Id string `json:"id"`,
Name string `json:"name"`,
}
type Paging struct {
Count int `json:"count"`
Previous string `json:"previous"`
Next string `json:"next"`
}
這樣它將按照在該結(jié)構(gòu)中定義的方式工作。您可以通過兩種方式訪問其字段:
直接地:
APIResponse.Count
間接:
APIResponse.Paging.Count
- 1 回答
- 0 關(guān)注
- 113 瀏覽
添加回答
舉報
0/150
提交
取消