go语言json文件保存例子
时间: 2023-05-26 10:06:14 浏览: 66
下面是一个保存 JSON 文件的示例代码:
```go
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Hobbies []string `json:"hobbies"`
}
func main() {
// 创建一个结构体实例
person := Person{
Name: "Alice",
Age: 30,
Hobbies: []string{"reading", "traveling"},
}
// 将结构体实例转换为 JSON 格式的字节数组
jsonBytes, err := json.Marshal(person)
if err != nil {
fmt.Println("Failed to convert person to JSON: ", err)
return
}
// 将 JSON 格式的字节数组写入文件
err = ioutil.WriteFile("person.json", jsonBytes, 0644)
if err != nil {
fmt.Println("Failed to save person to file: ", err)
return
}
fmt.Println("Person saved to file.")
}
```
首先,我们定义了一个 `Person` 结构体,包含名称、年龄和爱好。结构体的字段上使用了 `json` 标签,指定了结构体字段与 JSON 对象中的键名的对应关系。
接下来,在 `main` 函数中,我们创建了一个 `Person` 结构体实例,并将其转换为 JSON 格式的字节数组。使用 `json.Marshal` 函数可以将结构体实例转换为 JSON 格式的字节数组,如果转换失败会返回一个错误。
最后,我们将 JSON 格式的字节数组写入文件,使用了 `ioutil.WriteFile` 函数,该函数接收文件名、字节数组和权限标志。如果写入文件失败,函数会返回一个错误。
执行以上代码后,文件 `person.json` 将保存以下内容:
```json
{"name":"Alice","age":30,"hobbies":["reading","traveling"]}
```