package main
import (
"encoding/json"
"fmt"
)
// 定义自定义结构体
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
people := []Person{
{Name: "Alice", Age: 30},
{Name: "Bob", Age: 25},
}
// 将切片转换为JSON格式字符串
jsonData, err := json.MarshalIndent(people, "", " ")
if err != nil {
fmt.Printf("转换为JSON格式字符串时出错: %v\n", err)
return
}
fmt.Println(string(jsonData))
}
- 首先定义了一个自定义结构体
Person
,其中结构体字段的标签 json:"name"
和 json:"age"
用于指定在JSON序列化时的字段名。
- 创建了一个包含
Person
结构体的切片 people
。
- 使用
json.MarshalIndent
函数将 people
切片转换为格式化后的JSON格式字符串。json.MarshalIndent
的第一个参数是要转换的对象,第二个参数是前缀(这里为空),第三个参数是缩进字符串(这里为两个空格)。如果使用 json.Marshal
则不会格式化输出。
- 检查转换过程中是否发生错误,如果发生错误,打印错误信息并返回。
- 如果没有错误,打印转换后的JSON格式字符串。