假设我有这个结构块: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) }
- 1 回答
- 0 关注
- 113 浏览
添加回答
举报
0/150
提交
取消