亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Golang中訪問struct中的嵌套字段

如何在Golang中訪問struct中的嵌套字段

Go
瀟瀟雨雨 2023-08-14 14:33:18
假設我有這個結構塊:type AllShipments struct {    Shipments []struct {        ShipmentID    int       `json:"shipmentId"`        ShipmentDate  time.Time `json:"shipmentDate"`        ShipmentItems []struct {            OrderItemID string `json:"orderItemId"`            OrderID     string `json:"orderId"`        } `json:"shipmentItems"`        Transport struct {            TransportID int `json:"transportId"`        } `json:"transport"`    } `json:"shipments"`}我用:func main() {    var t AllShipments    .....    .....    body, err := ioutil.ReadAll(resp.Body)    if err != nil {        log.Fatal(err)    }    err = json.Unmarshal(body, &t)    if err != nil {        fmt.Println(string(body))    }    prettyJSON, err := json.MarshalIndent(t, "", "    ")    if err != nil {        log.Fatal("Failed to generate json", err)    }    fmt.Printf("%s\n", string(prettyJSON))例如,如何僅獲取 json 字段“shipmentDate”,我嘗試過,t.Shipments.ShipmentDate但沒有成功。t.Shipments確實過濾掉了第一個數組。那么最好的方法是什么?我知道我可以禁用其他 json 字段,"json:-"但這不是我想要的。只是訪問該領域的一種方式
查看完整描述

1 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

t.Shipments是一個切片 - 因此要訪問它的任何元素,您必須傳遞索引 - 然后您可以訪問該元素的字段,例如

if len(t.Shipments) > 0 {
    fmt.Println(v.Shipments[0].ShipmentDate)
}

或在切片范圍內:

for i, v := range t.Shipments {
    fmt.Println(i, v.ShipmentDate)
}


查看完整回答
反對 回復 2023-08-14
  • 1 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號