Go語言是一種適合處理文件操作的編程語言,其強大的遞歸功能可以方便地處理文件夾中的文件。本文將介紹如何使用Go語言遞歸文件夾中的json文件。
首先,我們需要定義一個遞歸方法來遍歷文件夾中的所有文件,同時過濾出我們需要的json文件。代碼如下:
func readDir(path string) { dir, err := ioutil.ReadDir(path) if err != nil { log.Fatal(err) } for _, file := range dir { if file.IsDir() { readDir(filepath.Join(path, file.Name())) } else { if filepath.Ext(file.Name()) == ".json" { fmt.Println(filepath.Join(path, file.Name())) // 在此處讀取json文件并進行相關操作 } } } }
在此代碼中,我們首先使用ioutil.ReadDir方法讀取指定路徑下的所有文件和文件夾,然后使用for循環遍歷它們。當我們遇到一個文件夾時,使用遞歸方法再次遍歷它下面的所有文件和文件夾。當我們遇到一個文件時,我們可以使用filepath.Ext方法判斷它的擴展名是否為.json,如果是,則可以讀取它并進行相關操作。
上述代碼只是遍歷了文件夾中的文件,如果我們需要讀取json文件的內容,可以使用下面的代碼:
func readJSONFile(path string) { file, err := ioutil.ReadFile(path) if err != nil { log.Fatal(err) } var data map[string]interface{} if err := json.Unmarshal([]byte(file), &data); err != nil { log.Fatal(err) } fmt.Println(data) }
在此代碼中,我們使用ioutil.ReadFile方法讀取文件內容,然后使用json.Unmarshal將其解析為map[string]interface{}類型的數據,最后輸出這些數據。
有了上面的兩段代碼,我們就可以方便地遍歷文件夾中的json文件并進行操作了。