欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go json文件讀取解析

林國瑞2年前9瀏覽0評論

在Go語言中,讀取和解析JSON格式的數(shù)據(jù)十分簡單。首先,我們需要導(dǎo)入encoding/json包:

import "encoding/json"

接著,我們就可以使用Unmarshal函數(shù)讀取和解析JSON格式的數(shù)據(jù)了。下面是一個(gè)例子:

type Person struct {
Name string  `json:"name"`
Age  int     `json:"age"`
Sex  string  `json:"sex"`
}
func main() {
var p Person
data := []byte(`{"name":"張三","age":18,"sex":"男"}`)
err := json.Unmarshal(data, &p)
if err != nil {
fmt.Println("Json unmarshal error:", err)
return
}
fmt.Println("Name:", p.Name)
fmt.Println("Age:", p.Age)
fmt.Println("Sex:", p.Sex)
}

在上面的例子中,我們定義了一個(gè)Person結(jié)構(gòu)體,然后使用Unmarshal函數(shù)將JSON格式的數(shù)據(jù)解析到這個(gè)結(jié)構(gòu)體中。在Unmarshal函數(shù)中,第一個(gè)參數(shù)是JSON格式的字節(jié)切片數(shù)據(jù),第二個(gè)參數(shù)是解析出來的結(jié)構(gòu)體的地址。

在實(shí)際開發(fā)中,我們經(jīng)常需要從文件中讀取JSON格式的數(shù)據(jù)。下面是一個(gè)從文件中讀取JSON格式的數(shù)據(jù)并解析的例子:

type Person struct {
Name string  `json:"name"`
Age  int     `json:"age"`
Sex  string  `json:"sex"`
}
func main() {
var p Person
file, err := os.Open("person.json")
if err != nil {
fmt.Println("Open file error:", err)
return
}
defer file.Close()
buf := make([]byte, 1024)
n, err := file.Read(buf)
if err != nil {
fmt.Println("Read file error:", err)
return
}
err = json.Unmarshal(buf[:n], &p)
if err != nil {
fmt.Println("Json unmarshal error:", err)
return
}
fmt.Println("Name:", p.Name)
fmt.Println("Age:", p.Age)
fmt.Println("Sex:", p.Sex)
}

在這個(gè)例子中,我們使用了os包中的Open函數(shù)打開person.json文件,并使用file.Read函數(shù)讀取文件內(nèi)容。在調(diào)用Unmarshal函數(shù)時(shí),我們只需提供讀取的字節(jié)切片數(shù)據(jù)和解析出來的結(jié)構(gòu)體的地址。

總的來說,Go語言的JSON數(shù)據(jù)讀取和解析十分方便。我們只需使用encoding/json包中的Unmarshal函數(shù)或Decoder對象即可完成JSON數(shù)據(jù)的讀取和解析,這為我們的開發(fā)工作帶來了很大的便利。