Go是一門強(qiáng)類型、編譯型語(yǔ)言,廣泛應(yīng)用于網(wǎng)絡(luò)、云計(jì)算、人工智能等領(lǐng)域。在處理JSON數(shù)據(jù)時(shí),Go語(yǔ)言特別方便且高效,可以使用內(nèi)置的編碼/解碼json包來處理JSON數(shù)據(jù)。由于我們需要批量處理JSON數(shù)據(jù),所以我們需引入io/ioutil包和path/filepath包。下面是一段處理JSON數(shù)據(jù)的代碼:
package main import ( "encoding/json" "fmt" "io/ioutil" "path/filepath" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonFiles, err := filepath.Glob("*.json") if err != nil { panic(err) } for _, file := range jsonFiles { jsonData, err := ioutil.ReadFile(file) if err != nil { panic(err) } var person Person err = json.Unmarshal(jsonData, &person) if err != nil { panic(err) } fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age) } }
在代碼中,我們使用了filepath.Glob函數(shù)來獲取指定目錄下的所有.json文件,然后使用ioutil包的ReadFile函數(shù)讀入JSON數(shù)據(jù)。接著,我們使用json包的Unmarshal函數(shù)將JSON數(shù)據(jù)解析為Person結(jié)構(gòu)體,最后輸出Name和Age屬性的值。
在運(yùn)行以上代碼之前,需要有一些JSON文件才能進(jìn)行測(cè)試。在同一目錄下,新建兩個(gè)JSON文件person1.json和person2.json,分別內(nèi)容為:
// person1.json { "name": "Alice", "age": 25 } // person2.json { "name": "Bob", "age": 30 }
接下來,在命令行中運(yùn)行該程序,輸出如下:
Name: Alice, Age: 25 Name: Bob, Age: 30
如此簡(jiǎn)單的代碼,高效地批量處理了JSON數(shù)據(jù)。Go語(yǔ)言非常適合用于處理批量數(shù)據(jù),給我們的工作帶來極大的方便。