我有一个正在使用的结构,但我不确定如何正确遍历它。我想访问字段名称,但它所做的只是在每个循环中递增计数。


这是我的结构:


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 列名称。