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

go讀取json文件多條

方一強2年前8瀏覽0評論

在Go語言中,要讀取一個JSON文件中的多條記錄需要使用一些特殊的技巧。我們可以使用Go自帶的encoding/json包來處理JSON文件,但是在讀取多條記錄時需要使用一種特殊的結構體。

type Record struct {
Name string `json:"name"`
Age int `json:"age"`
}
type Records struct {
Records []Record `json:"records"`
}

以上代碼中的Record結構體定義了一個記錄的基本結構,包括NameAge兩個字段。而Records結構體則定義了一個包含多條記錄的結構體,其中Records字段是一個Record類型的切片,用于存儲多條記錄。

接下來,我們可以使用以下代碼來讀取JSON文件中的多條記錄:

func readJSONFile(filename string) ([]Record, error) {
data, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
}
var records Records
err = json.Unmarshal(data, &records)
if err != nil {
return nil, err
}
return records.Records, nil
}

以上代碼中的readJSONFile函數接收一個JSON文件名并返回一個Record切片和一個錯誤。該函數首先使用ioutil.ReadFile函數讀取JSON文件中的數據,然后使用json.Unmarshal函數將數據解碼到Records結構體中。最后,該函數返回解碼后的Records結構體中的Records字段。

使用以上代碼,我們可以輕松地讀取JSON文件中的多條記錄。另外,如果我們需要將多條記錄編碼為JSON格式并寫入文件中,可以使用以下代碼:

func writeJSONFile(filename string, records []Record) error {
data, err := json.Marshal(Records{Records: records})
if err != nil {
return err
}
err = ioutil.WriteFile(filename, data, 0644)
if err != nil {
return err
}
return nil
}

以上代碼中的writeJSONFile函數接收一個JSON文件名和一個Record切片,并返回一個錯誤。該函數首先使用json.Marshal函數將Records結構體編碼為JSON格式的數據,然后使用ioutil.WriteFile函數將數據寫入文件中。

綜上所述,使用以上代碼,我們可以輕松地讀取和寫入JSON格式的文件,包含多條記錄的情況也同樣適用。