跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

如何在Golang中读取和写入JSON文件

在Golang中读写JSON文件需使用encoding/json和os包。2. 定义字段首字母大写的结构体并用json标签映射键名。3. 用os.Open配合json.Decoder读取文件内容到结构体。4. 用os.Create结合json.Encoder将结构体写入文件并可格式化输出。5. 处理数组时使用切片类型,操作方式类似。6. 正确处理错误确保文件操作安全。 在Golang中读取和写入JSON文件是常见操作,主要依赖
encoding/json
包和
os
包来处理文件。只要结构定义得当,操作非常直观。 定义结构体以匹配JSON数据 要正确解析JSON内容,需要先定义一个结构体(struct),其字段与JSON的键对应。字段名首字母必须大写,并使用
json:
标签指定映射关系。 例如,处理用户信息:
type User struct { Name string `json:"name"` Age int `json:"age"` Email string `json:"email"` }
从JSON文件读取数据 使用
os.Open
打开文件,再通过
json.Decoder
将内容解码到结构体中。 示例代码:
func readJSON(filename string) (User, error) { var user User file, err := os.Open(filename) if err != nil { return user, err } defer file.Close() decoder := json.NewDecoder(file) err = decoder.Decode(&user) return user, err }
调用
readJSON("user.json")
即可加载文件内容。 立即学习 “ go语言免费学习笔记(深入) ”; 将数据写入JSON文件 使用
os.Create
创建或覆盖文件,再用
json.Encoder
将结构体 编码 为JSON格式写入。 php版微信js-sdk支付接口类 php版微信js-sdk支付接口类 下载 示例代码:
func writeJSON(filename string, user User) error { file, err := os.Create(filename) if err != nil { return err } defer file.Close() encoder := json.NewEncoder(file) encoder.SetIndent("", " ") // 格式化输出 return encoder.Encode(user) }
调用
writeJSON("user.json", user)
会生成带缩进的可读JSON文件。 处理切片或复杂结构 如果JSON包含数组,可将结构体字段定义为切片类型。 例如:
type Users struct { List []User `json:"users"` }
读写方式与单个对象一致,只需调整目标变量类型。 基本上就这些。只要注意结构体标签和文件操作的错误处理,读写JSON就很顺畅。

相关文章