Avatar ·

Como obter uma resposta JSON de uma requisição HTTP GET em Go

Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema que não consigo resolver há várias horas. Preciso fazer uma requisição GET para uma API externa que retorna JSON e parsear essa resposta em uma struct. Aqui está o que tentei: ```go package main import ( "fmt" "net/http" ) func main() { resp, err := http.Get("https://api.example.com/data") if err != nil { fmt.Println("Error:", err) } defer resp.Body.Close() fmt.Println(resp) // E agora? } ``` O problema é que `resp` não é o JSON em si, mas um objeto Response. Não entendo como extrair os dados dele para uma struct. Tentei ler a documentação, mas tem muita coisa sobre `io.Reader` e `json.Decoder`, e fiquei confuso. Perguntas específicas: 1. Como ler corretamente o corpo da resposta? 2. Como converter JSON para uma struct em Go? 3. Preciso tratar o status code da resposta? 4. Como lidar com erros se a API não retornar JSON? Agradeço por um exemplo detalhado com explicação. Eu p