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 形式的结构,其中分页元素是一个子结构,就像结果一样。但是,在示例 JSON 中,分页方面没有父 json 标记。它如何被解码成它自己的独立结构?目前,如果我将 Count、Next 和 Previous 提升到 APIResponse 中,它们会出现,但当它们是子结构时不会出现。
1 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
将您的Paging结构直接嵌入到APIResponse以下内容中:
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"`
}
这样它将按照在该结构中定义的方式工作。您可以通过两种方式访问其字段:
直接地:
APIResponse.Count
间接:
APIResponse.Paging.Count
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消