我正在尝试从 github 存储库获取最新版本信息并获取该版本中的特定资产。以下代码打印出发布标签和资产结构下的所有资产。我希望能够提取特定项目及其下载 url,例如 ajour.exe 标签。我可以通过结构来做到这一点,还是应该解析输出以获取它?


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"`

       }

    }

    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)

}