近年來(lái),golang在web開(kāi)發(fā)中的應(yīng)用愈發(fā)廣泛,與此同時(shí),json作為數(shù)據(jù)庫(kù)也越來(lái)越受到人們的關(guān)注。golang中支持json作為數(shù)據(jù)庫(kù)的操作非常簡(jiǎn)單,下面我們來(lái)看下具體操作。
首先,我們需要定義一個(gè)結(jié)構(gòu)體,用于存儲(chǔ)我們要存儲(chǔ)的數(shù)據(jù)。
type User struct { Name string `json:"name"` Age int `json:"age"` }
接下來(lái),我們需要讀取json文件,并將json文件中的數(shù)據(jù)解析為剛剛定義的結(jié)構(gòu)體。
func ReadJsonFile(filePath string) []User { var data []User file, err := os.Open(filePath) if err != nil { fmt.Println("open file error:", err) return data } defer file.Close() bytes, _ := ioutil.ReadAll(file) err = json.Unmarshal(bytes, &data) if err != nil { fmt.Println("read json error:", err) return data } return data }
將數(shù)據(jù)存儲(chǔ)到j(luò)son文件中的操作也非常簡(jiǎn)單,只需要將結(jié)構(gòu)體數(shù)據(jù)編碼成json格式,并寫(xiě)入到文件即可。
func WriteJsonFile(filePath string, data []User) bool { file, err := os.Create(filePath) if err != nil { fmt.Println("create file error:", err) return false } defer file.Close() bytes, _ := json.Marshal(data) _, err = file.Write(bytes) if err != nil { fmt.Println("write json error:", err) return false } return true }
這樣,我們就可以輕松的使用json作為數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)的存取操作。