package main
import (
"encoding/json"
"fmt"
)
type Data struct {
a string
b int
}
type Project struct {
Id int64
Title string
Name string
Data Data
}
func main() {
yourProject := &Project{
Id: 1,
Title: "games",
Name: "Nayan",
Data: Data{
a: "chill",
b: 1,
},
}
fmt.Println(yourProject.Data.a)
fmt.Printf("%T\n", yourProject)
res, _ := json.MarshalIndent(yourProject, "", "\t")
fmt.Print(string(res))
}
在这里,我正在尝试打印嵌套结构,但一半的结构正在打印。Data 子结构打印为 {}。我想将它打印为整个结构。有人可以解释为什么会发生并帮助我。提前致谢。
输出
chill
*main.Project
{
"Id": 1,
"Title": "games",
"Name": "Nayan",
"Data": {}
}
json
包方法只能看到和导出结构的公共成员Marshal
:
结构值编码为 JSON 对象。每个导出的结构字段都成为对象的成员,使用字段名称作为对象键
请参阅Marshal 文档。
如果你想看到a
和b
重视,你必须将它们导出,并将名称更改为A
and B
。
如果要在 json 中保留字段名称小写,请使用结构字段标签,例如:
A string `json:"a"`
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句