我试图弄清楚如何创建一个切片,我可以更容易地操作和使用的值,从以后迭代,以作出许多API请求。整数片是API ID。在生成GET检索id的JSON数组之后,我成功地创建了一个带有自定义类型的结构,但现在我只需要从该JSON数组中提取值,并将它们转储到一个没有键"id“的片中(这可能需要随着时间的变化而改变)。
这是我的JSON:
{
"data": [
{
"id": 38926
},
{
"id": 38927
}
],
"meta": {
"pagination": {
"total": 163795,
"current_page": 3,
"total_pages": 81898
}
}
}
我想从它中得到:
{38926, 38927}
发布于 2021-11-27 00:06:14
如果您想要自定义解封处理行为,则需要具有自己的json.Unmarshaler
的自定义类型。
type ID int
func (i *ID) UnmarshalJSON(data []byte) error {
id := struct {
ID int `json:"id"`
}{}
err := json.Unmarshal(data, &id)
if err != nil {
return err
}
*i = ID(id.ID)
return nil
}
若要使用此类型,请在结构中引用此类型。
type data struct {
IDs []ID `json:"data"`
}
var d data
https://stackoverflow.com/questions/70131044
复制相似问题