Go語(yǔ)言是一種功能強(qiáng)大的編程語(yǔ)言,它提供了豐富的標(biāo)準(zhǔn)庫(kù),包括用于讀寫JSON文件的功能。
在Go語(yǔ)言中,我們可以使用encoding/json包來讀寫JSON文件。該包提供了Marshal和Unmarshal函數(shù),分別用于將Go語(yǔ)言結(jié)構(gòu)轉(zhuǎn)換為JSON格式,以及將JSON格式轉(zhuǎn)換為Go語(yǔ)言結(jié)構(gòu)。
type Person struct { Name string `json:"name"` Age int `json:"age"` Address string `json:"address"` Phone string `json:"phone"` } func main() { p1 := Person{ Name: "Tom", Age: 20, Address: "Beijing", Phone: "18888888888", } // 將Go結(jié)構(gòu)體轉(zhuǎn)換成JSON字符串 bytes, err := json.Marshal(p1) if err != nil { log.Fatal(err) } // 將JSON字符串寫入文件 err = ioutil.WriteFile("person.json", bytes, 0644) if err != nil { log.Fatal(err) } // 從文件中讀取JSON字符串 bytes, err = ioutil.ReadFile("person.json") if err != nil { log.Fatal(err) } // 將JSON字符串轉(zhuǎn)換成Go結(jié)構(gòu)體 var p2 Person err = json.Unmarshal(bytes, &p2) if err != nil { log.Fatal(err) } fmt.Println(p2.Name) fmt.Println(p2.Age) fmt.Println(p2.Address) fmt.Println(p2.Phone) }
在這個(gè)示例中,我們定義了一個(gè)Person結(jié)構(gòu)體,并將其轉(zhuǎn)換為JSON格式來寫入文件。接著我們從文件中讀取JSON字符串,并將其轉(zhuǎn)換為Go結(jié)構(gòu)體。最后,我們打印了從JSON字符串中解析出來的Person結(jié)構(gòu)體的字段。