Skip to content

文件操作函数

json 包提供的文件操作函数,支持文件读写和流式 I/O。

文件读取函数

LoadFromFile

签名:func LoadFromFile(filePath string, cfg ...Config) (string, error)

从文件加载 JSON 数据。

参数

名称类型必需说明
filePathstring文件路径
cfgConfig可选配置
go
data, err := json.LoadFromFile("config.json")
if err != nil {
    panic(err)
}
fmt.Println(data)

SaveToFile

签名:func SaveToFile(filePath string, data any, cfg ...Config) error

将 JSON 数据保存到文件。

参数

名称类型必需说明
filePathstring文件路径
dataany要保存的数据
cfgConfig可选配置
go
err := json.SaveToFile("output.json", map[string]any{
    "name": "Alice",
    "age":  30,
})
if err != nil {
    panic(err)
}

MarshalToFile

签名:func MarshalToFile(filePath string, data any, cfg ...Config) error

将数据序列化并写入文件。

参数

名称类型必需说明
filePathstring文件路径
dataany要序列化的数据
cfgConfig可选配置
go
err := json.MarshalToFile("data.json", myStruct)

UnmarshalFromFile

签名:func UnmarshalFromFile(filePath string, v any, cfg ...Config) error

从文件读取并反序列化数据。

参数

名称类型必需说明
filePathstring文件路径
vany目标对象指针
cfgConfig可选配置
go
var config MyConfig
err := json.UnmarshalFromFile("config.json", &config)
if err != nil {
    panic(err)
}

LoadFromReader

签名:func LoadFromReader(reader io.Reader, cfg ...Config) (string, error)

从 io.Reader 加载 JSON 数据。适用于从网络连接、HTTP 请求体等流式数据源读取 JSON。

参数

名称类型必需说明
readerio.Reader数据源
cfgConfig可选配置
go
// 从 HTTP 响应体读取
resp, _ := http.Get("https://api.example.com/data")
defer resp.Body.Close()
data, err := json.LoadFromReader(resp.Body)

// 从字符串读取
data, err = json.LoadFromReader(strings.NewReader(`{"name":"test"}`))

SaveToWriter

签名:func SaveToWriter(writer io.Writer, data any, cfg ...Config) error

将 JSON 数据写入 io.Writer。

参数

名称类型必需说明
writerio.Writer输出目标
dataany要写入的数据
cfgConfig可选配置
go
var buf bytes.Buffer
err := json.SaveToWriter(&buf, map[string]any{"name": "test"})
if err != nil {
    panic(err)
}

相关