我有一个正在使用的结构,但我不确定如何正确遍历它。我想访问字段名称,但它所做的只是在每个循环中递增计数。
这是我的结构:
type ImgurJson struct {
Status int16 `json:"status"`
Success bool `json:"success"`
Data []struct {
Width int16 `json:"width"`
Points int32 `json:"points"`
CommentCount int32 `json:"comment_count"`
TopicId int32 `json:"topic_id"`
AccountId int32 `json:"account_id"`
Ups int32 `json:"ups"`
Downs int32 `json:"downs"`
Bandwidth int64 `json:"bandwidth"`
Datetime int64 `json:"datetime"`
Score int64 `json:"score"`
Account_Url string `json:"account_url"`
Topic string `json:"topic"`
Link string `json:"link"`
Id string `json:"id"`
Description string`json:"description"`
CommentPreview string `json:"comment_preview"`
Vote string `json:"vote"`
Title string `json:"title"`
Section string `json:"section"`
Favorite bool `json:"favorite"`
Is_Album bool `json:"is_album"`
Nsfw bool `json:"nsfw"`
} `json:"data"`
}
这是我的功能:
func parseJson(file string) {
jsonFile, err := ioutil.ReadFile(file)
if err != nil {
...
}
jsonParser := ImgurJson{}
err = json.Unmarshal(jsonFile, &jsonParser)
for field, value := range jsonParser.Data {
fmt.Print("key: ", field, "\n")
fmt.Print("value: ", value, "\n")
}
}
如何循环遍历 Go 中的嵌套 []struct 并返回字段?我看过几篇关于反思的帖子,但我不明白这是否对我有帮助。我可以返回每个字段的值,但我不明白如何将字段名称映射到键值。
将“keys”重命名为“field”,抱歉!没有意识到它们被称为字段。
我希望能够打印:
field: Width value: 1234
我想了解如何执行此操作,以便稍后可以按名称调用特定字段,以便将其映射到 SQL 列名称。