我目前正在將 API 響應提取到結構中。我可以正?;卮鹫f: [ {"date":"2021-10-04","user":"Test","url":"Anonymous"]}, {"date":"2021-10-04","user":"Test","url":"Anonymous"]}, {"date":"2021-10-04","user":"Test","url":"Anonymous"]}, ]但是當我得到這樣的數(shù)據(jù)時: "urls": [ {"date":"2021-10-04","user":"Test","url":"Anonymous"]}, {"date":"2021-10-04","user":"Test","url":"Anonymous"]}, {"date":"2021-10-04","user":"Test","url":"Anonymous"]}, ]我似乎無法將它解析為結構。這似乎是一個愚蠢的問題,因為它基本上是一樣的。這是我在做什么: type urls struct { Urls struct { Date string `json:"date"` User string `json:"user"` Urls string `json:"urls"` } `json:"urls"` } type url []urls在函數(shù)中: resp, err := http.Get("https://url") if err != nil { fmt.Println("No response from request") } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) // response body is []byte var u url _ = json.Unmarshal(body, &u)不幸的是,這不起作用,你是空的。通過第一個響應,我可以有一個這樣的結構并且它工作正常: type urls struct { Date string `json:"date"` User string `json:"user"` Urls string `json:"urls"` }
1 回答

慕桂英4014372
TA貢獻1871條經(jīng)驗 獲得超13個贊
我想我想說的是上述內(nèi)容的結合,再加上我的一點經(jīng)驗。
您的 Urls 字段是 JSON 中的一個數(shù)組,但不在您聲明的結構中。
您不應忽略 json.Unmarshal(body, &u) 返回的錯誤。
您發(fā)布的 Json 在語法上不正確。我稍微修改了你的 Json 字符串,它可能是:
{"urls": [ {"date":"2021-10-04","user":"Test","url":"Anonymous"}, {"date":"2021-10-04","user":"Test","url":"Anonymous"}, {"date":"2021-10-04","user":"Test","url":"Anonymous"} ] }
Go 結構應該是:
type URL struct { SubURLs []struct { Date string `json:"date"` User string `json:"user"` URL string `json:"url"` } `json:"urls"`}
接下來給大家介紹一種在處理JSON to Go structs時可能的方法: 你可以把你的Json貼在這個網(wǎng)站上,然后你就可以得到它對應的Go結構體,你也可以順便修正你的Json。
- 1 回答
- 0 關注
- 76 瀏覽
添加回答
舉報
0/150
提交
取消