2 回答
TA贡献1735条经验 获得超5个赞
您快到了。请注意,json.Unmarshal确实会为您解析输出。您只需要循环遍历该Assets字段,就像这样(代替fmt.Println(data.Assets)):
for _, asset := range data.Assets {
if asset.Name == "ajour.exe" {
fmt.Println(asset.BrowserDownloadURL)
}
}
TA贡献1813条经验 获得超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 关注
- 133 浏览
添加回答
举报