英文:
Return Entire Struct from Go function
问题
我有一个从GET函数返回的包含大量JSON键值对的结构体。类似于:
type content struct {
field1 string `json:"Language"`
field2 int `json:"Runtime"`
field3 time.Time `json:"StartTime"`
field4 time.Time `json:"EndTime"`
field5 int64 `json:"ProgramId"`
field6 string `json:"ProviderId"`
field7 string `json:"Title"`
}
我知道如何返回单个字段的值,使用以下代码:
println(content.field1)
但是,如何在不列出每个元素的情况下返回每个字段的名称和值呢?我应该如何返回类似于以下的内容?
field1:value
英文:
I have a lengthy struct of json key value pairs returned from a GET function. Similiar to:
type content struct {
field1 string `json:"Language"`
field2 int `json:"Runtime"`
field3 time.Time `json:"StartTime"`
field4 time.Time `json:"EndTime"`
field5 int64 `json:"ProgramId`
field6 string `json:"ProviderId"`
field7 string `json:"Title:`
}
I know how to return a single field value using:
println(content.field1)
but how do I return every field name and value without listing out every element? How would I return something like this?
field1:value
答案1
得分: 2
因为JSON解码器忽略未导出的字段名,所以你必须导出字段名:
type content struct {
Field1 string `json:"Language"`
Field2 int `json:"Runtime"`
Field3 time.Time `json:"StartTime"`
Field4 time.Time `json:"EndTime"`
Field5 int64 `json:"ProgramId"`
Field6 string `json:"ProviderId"`
Field7 string `json:"Title"`
}
要显示字段,使用"%+v"
打印解码后的值content
:
fmt.Printf("%+v\n", content)
英文:
Because the JSON decoder ignores unexported field names, you must
export the field names:
type content struct {
Field1 string `json:"Language"`
Field2 int `json:"Runtime"`
Field3 time.Time `json:"StartTime"`
Field4 time.Time `json:"EndTime"`
Field5 int64 `json:"ProgramId`
Field6 string `json:"ProviderId"`
Field7 string `json:"Title:`
}
To show the fields, print the decoded value content
using "%+v":
fmt.Printf("%+v\n", content)
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论