在golang中,我們經(jīng)常需要加載json數(shù)據(jù),這其中需要使用到encoding/json包。下面將為大家介紹如何使用golang加載json數(shù)據(jù)。
import (
"encoding/json"
"fmt"
"os"
)
type User struct {
Name string `json:"name"`
Age int `json:"age"`
Address string `json:"address"`
}
func main() {
// 讀取json文件
file, err := os.Open("user.json")
if err != nil {
fmt.Println("文件讀取失敗", err)
return
}
defer file.Close()
// 解析json
var users []User
decoder := json.NewDecoder(file)
err = decoder.Decode(&users)
if err != nil {
fmt.Println("json解析失敗", err)
return
}
// 打印結(jié)果
fmt.Println(users)
}
首先,我們?cè)谖募_頭導(dǎo)入了encoding/json包。然后定義了一個(gè)User結(jié)構(gòu)體,用于保存json中的數(shù)據(jù)。User結(jié)構(gòu)體中的`json:"xxx"`是結(jié)構(gòu)體標(biāo)簽,用于說明json中對(duì)應(yīng)字段的名稱。接下來定義了main函數(shù),我們需要在該函數(shù)中實(shí)現(xiàn)讀取json文件并解析json的操作。
我們首先通過os包中的Open方法打開json文件,并在defer中添加Close操作,防止文件未關(guān)閉導(dǎo)致的內(nèi)存泄露。然后使用json包中的NewDecoder方法創(chuàng)建一個(gè)decoder對(duì)象,并通過Decode方法將文件中的json數(shù)據(jù)解析到users切片中。
最后,我們通過fmt包中的Println方法打印了解析后的結(jié)果。
總之,通過以上代碼,我們可以輕松地使用golang加載json數(shù)據(jù),在實(shí)際開發(fā)中可以根據(jù)需求靈活運(yùn)用。