package main
import (
"encoding/json"
"fmt"
)
type Root struct {
Middle []struct {
Inner struct {
ID int `json:"id"`
Name string `json:"name"`
} `json:"inner"`
} `json:"middle"`
}
// UnmarshalJSON 反序列化 JSON 字节切片为 Root 结构体实例
func UnmarshalJSON(data []byte) (Root, error) {
var root Root
err := json.Unmarshal(data, &root)
if err != nil {
return root, fmt.Errorf("反序列化错误: %v", err)
}
return root, nil
}
// MarshalJSON 将 Root 结构体实例序列化为格式化的 JSON 字符串
func MarshalJSON(root Root) (string, error) {
bytes, err := json.MarshalIndent(root, "", " ")
if err != nil {
return "", fmt.Errorf("序列化错误: %v", err)
}
return string(bytes), nil
}