package main
import (
"encoding/json"
"fmt"
)
type A struct {
a int `json:"a"`
}
type B struct {
b int `json:"b"`
a []A `json:"a"`
}
func main() {
var a A
var b B
a.a = 1
b.b = 2
//b.a = make([]A, 2)
b.a = append(b.a, A{2})
b.a = append(b.a, A{3})
s1, err := json.Marshal(&a)
if err != nil {
fmt.Println(err)
} else {
fmt.Println("1", a)
fmt.Println("1", string(s1))
}
s2, _ := json.Marshal(b)
fmt.Println("2", b)
fmt.Println("2", string(s2))
}
得到的结果是:
1 {1}
1 {}
2 {2 [{2} {3}]}
2 {}
为何 json.Marshal 后是空啊