package main
import (
"encoding/json"
"fmt"
)
// 定义学生成绩结构体
type Scores struct {
Math int `json:"math"`
English int `json:"english"`
}
// 定义学生结构体
type Student struct {
Name string `json:"name"`
Scores Scores `json:"scores"`
}
// 定义包含学生列表的结构体
type Students struct {
Students []Student `json:"students"`
}
func main() {
jsonStr := `{"students":[{"name":"Alice","scores":{"math":85,"english":90}},{"name":"Bob","scores":{"math":78,"english":82}}]}`
var students Students
err := json.Unmarshal([]byte(jsonStr), &students)
if err != nil {
fmt.Printf("JSON解析错误: %v\n", err)
return
}
newJsonStr, err := json.MarshalIndent(students, "", " ")
if err != nil {
fmt.Printf("JSON序列化错误: %v\n", err)
return
}
fmt.Println(string(newJsonStr))
}