go http请求,并获取json值
时间: 2024-04-28 22:25:25 浏览: 5
下面是一个使用 Go 语言进行 HTTP 请求,并获取 JSON 响应的示例代码:
```
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
type Response struct {
UserId int `json:"userId"`
Id int `json:"id"`
Title string `json:"title"`
Completed bool `json:"completed"`
}
func main() {
resp, err := http.Get("https://jsonplaceholder.typicode.com/todos/1")
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
panic(err)
}
var response Response
err = json.Unmarshal(body, &response)
if err != nil {
panic(err)
}
fmt.Println(response)
}
```
在这个程序中,我们首先使用 `http.Get()` 函数进行 GET 请求,将响应存储在 `resp` 中。然后我们使用 `ioutil.ReadAll()` 函数读取响应体,并将其存储在 `body` 变量中。接下来,我们定义了一个 `Response` 结构体来存储 JSON 数据。最后,我们使用 `json.Unmarshal()` 函数将 `body` 中的 JSON 数据解析为 `Response` 类型的变量 `response`。最后,我们将解析后的 `response` 变量输出到控制台。
注意:这是一个简单的示例代码,实际生产环境中应该更加健壮和安全,例如添加错误处理等。