在 golang 中,可以通过以下步骤从 url 加载 json 数据:导入必要包。使用 http.get 获取响应。关闭响应体。读取并转换为字节切片。解码字节切片为 json 数据结构。

如何在 Golang 中从 URL 加载 JSON 数据
在 Golang 中加载 JSON 数据非常简单,下面我们介绍如何从 URL 加载 JSON 数据,并提供一个实战案例。
步骤:
立即学习“go语言免费学习笔记(深入)”;
-
导入必要的包:
import ( "encoding/json" "fmt" "io/ioutil" "log" "net/http" )
-
使用
http.Get函数获取数据的响应:resp, err := http.Get("https://example.com/data.json") if err != nil { log.Fatal(err) } -
在
defer resp.Body.Close()延迟函数中关闭响应体:defer resp.Body.Close()
-
使用
ioutil.ReadAll读取响应体并将其转换为字节切片:body, err := ioutil.ReadAll(resp.Body) if err != nil { log.Fatal(err) } -
将字节切片解码为 JSON 数据结构:
var data map[string]interface{} if err := json.Unmarshal(body, &data); err != nil { log.Fatal(err) }
实战案例:
以下是一个从 JSONPlaceholder API 加载职员数据的实战案例:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
)
func main() {
resp, err := http.Get("https://jsonplaceholder.typicode.com/users")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
var users []map[string]interface{}
if err := json.Unmarshal(body, &users); err != nil {
log.Fatal(err)
}
for _, user := range users {
fmt.Printf("Name: %s, Email: %s\n", user["name"], user["email"])
}
}这个案例展示了如何加载用户列表并遍历和打印每个用户的姓名和电子邮件地址。










