2 回答

TA貢獻1735條經(jīng)驗 獲得超5個贊
您快到了。請注意,json.Unmarshal確實會為您解析輸出。您只需要循環(huán)遍歷該Assets字段,就像這樣(代替fmt.Println(data.Assets)):
for _, asset := range data.Assets {
if asset.Name == "ajour.exe" {
fmt.Println(asset.BrowserDownloadURL)
}
}

TA貢獻1813條經(jīng)驗 獲得超2個贊
json:"assets"缺少json 標記
func GetGithubAsset() {
testUri := "https://api.github.com/repos/ajour/ajour/releases/latest"
type githubApiData struct {
AppVersion string `json:"tag_name"`
Assets []struct {
Name string `json:"name"`
BrowserDownloadURL string `json:"browser_download_url"`
} `json:"assets"`
}
resp, err := http.Get(testUri)
if err != nil {
log.Fatal(err)
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
var data githubApiData
jsonErr := json.Unmarshal(body, &data)
if jsonErr != nil {
log.Fatal(jsonErr)
}
fmt.Println(data.AppVersion)
fmt.Println(data.Assets)
}
- 2 回答
- 0 關(guān)注
- 159 瀏覽
添加回答
舉報