在 golang 中,可以通过以下步骤从 url 加载 json 数据:导入必要包。使用 http.get 获取响应。关闭响应体。读取并转换为字节切片。解码字节切片为 json 数据结构。
如何在 Golang 中从 URL 加载 JSON 数据
在 Golang 中加载 JSON 数据非常简单,下面我们介绍如何从 URL 加载 JSON 数据,并提供一个实战案例。
步骤:
-
导入必要的包:
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: %sn", user["name"], user["email"]) } }
登录后复制
这个案例展示了如何加载用户列表并遍历和打印每个用户的姓名和电子邮件地址。
以上就是如何在 Golang 中从 URL 加载 JSON 数据?的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:代号邱小姐,转转请注明出处:https://www.dingdanghao.com/article/502486.html