如何引用" AllData"中的字段?从主要"预测"结构?例如,如果我想从预测中引用" TemperatureMax - >每日?
type AllData struct {
Time float64 `json:"time"`
Summary string `json:"summary"`
Icon string `json:"icon"`
TemperatureMin float64 `json:"temperatureMin"`
TemperatureMinTime float64 `json:"temperatureMinTime"`
TemperatureMax float64 `json:"temperatureMax"`
}
type HourlyData struct {
Summary string `json:"summary"`
Icon string `json:"icon"`
Data []CurrentData `json:"data"`
}
type DailyData struct {
Summary string `json:"summary"`
Icon string `json:"icon"`
Data []AllData `json:"data"`
}
type Forecast struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
Timezone string `json:"timezone"`
Offset int `json:"offset"`
Currently CurrentData `json:"currently"`
Hourly HourlyData `json:"hourly"`
Daily DailyData `json:"daily"`
Flags Flags `json:"flags"`
}
答案 0 :(得分:0)
您可以通过为AllData
中的Forecast
切片提供索引,从Data
结构中访问DailyData
字段。考虑一下这个问题的精简示例:
package main
import "fmt"
type AllData struct {
Summary string
}
type DailyData struct {
Data []AllData
}
type Forecast struct {
Daily DailyData
}
func main() {
a := AllData{"summary"}
s := []AllData{a}
d := DailyData{s}
f := Forecast{d}
val := f.Daily.Data[0].Summary
fmt.Println(val)
}
在main
中,我们从Summary
AllData
切片的索引0处的DailyData
结构中读取Data
字段。这会将summary
打印到控制台。
或者,我们可以通过AllData
中的切片范围访问多个DailyData
结构:
func main() {
a1 := AllData{"summary1"}
a2 := AllData{"summary2"}
a3 := AllData{"hello"}
s := []AllData{a1, a2, a3}
d := DailyData{s}
f := Forecast{d}
for _, val := range f.Daily.Data {
fmt.Println(val.Summary)
}
}
以上版画:
summary1
summary2
hello