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 后是空啊
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.