以下是一个简单的示例,演示如何读取目录下的所有 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 函数来构建文件路径,以避免在不同操作系统上使用不同的路径分隔符

golang 引用读取目录下的json文件

原文地址: https://www.cveoy.top/t/topic/fUZx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录