golang 引用读取目录下的json文件
以下是一个简单的示例,演示如何读取目录下的所有 JSON 文件并将其解析为 Go 结构体:
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
"path/filepath"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
files, err := ioutil.ReadDir("json_files") // 指定目录
if err != nil {
fmt.Println("Error:", err)
return
}
for _, file := range files {
if filepath.Ext(file.Name()) == ".json" { // 只处理 JSON 文件
jsonFile, err := os.Open(filepath.Join("json_files", file.Name()))
if err != nil {
fmt.Println("Error:", err)
continue
}
defer jsonFile.Close()
jsonData, err := ioutil.ReadAll(jsonFile)
if err != nil {
fmt.Println("Error:", err)
continue
}
var person Person
err = json.Unmarshal(jsonData, &person)
if err != nil {
fmt.Println("Error:", err)
continue
}
fmt.Printf("Name: %s\n", person.Name)
fmt.Printf("Age: %d\n", person.Age)
}
}
}
在此示例中,我们首先使用 ioutil.ReadDir 函数读取指定目录下的所有文件。然后,我们使用 filepath.Ext 函数检查每个文件的扩展名是否为 .json。如果是,我们打开文件并读取其内容。接下来,我们使用 json.Unmarshal 函数将 JSON 数据解析为 Person 结构体。最后,我们打印解析的数据。请注意,我们使用 filepath.Join 函数来构建文件路径,以避免在不同操作系统上使用不同的路径分隔符
原文地址: https://www.cveoy.top/t/topic/fUZx 著作权归作者所有。请勿转载和采集!