【发布时间】:2017-03-31 16:11:24
【问题描述】:
我有两个结构体:
type A struct {
Zip string `json:"zip"`
}
type B struct {
Foo string `bson:"foo"`
Bar A `json:"bar"`
}
当我尝试json.Marshal B 类型时,Bar 字段无法正确转换。字段正常,但值始终为空。输出如下所示:
{"foo": "some-string-value", "bar": {"zip": ""}}
我做错了什么?
【问题讨论】:
-
您是否填充了 Zip 字段?以及如何?
-
所有字段都填充
Bar填充有A的实例。并且该实例填充了Zip。 -
A 的 Zip 字段未填充。专注于找出原因。
-
已填充。当我有一个
B的实例时,我只需执行 B.Bar = a,a是之前正确填充的A的一个实例。 -
fmt.Printf("%#v\n", b)会得到什么?