如何解决在嵌套结构中访问数据
im字符串,用于说明从api提取数据后如何访问数据。
这是嵌套结构的顶部,我想访问“ 湿度”
type WeatherStruct struct {
Current struct {
Cloudcover int64 `json:"cloudcover"`
Feelslike int64 `json:"feelslike"`
Humidity int64 `json:"humidity"`
IsDay string `json:"is_day"`
这是解析为struct的代码
func weather(body []byte) (*WeatherStruct,error) {
var s = new(WeatherStruct)
err := json.Unmarshal(body,&s)
if err != nil {
fmt.Println("whoops:",err)
}
return s,err
}
func Getweather(w http.ResponseWriter,r *http.Request) {
requestData := getRestRequest{}
requestData.url = url
requestData.query = "north%20shields"
resp,err := http.Get(requestData.url + requestData.query)
if err != nil {
// handle error
}
defer resp.Body.Close()
body,err := ioutil.ReadAll(resp.Body)
if err != nil {
log.Println("main started")
}
s,err := weather([]byte(body))
if err != nil {
log.Println("main started")
}
fmt.Printf("Results: %v\n",s)
我原本应该是s.Current,但是没有定义(我知道它在数据中)
这是输出
Results: &{{25 16 63 yes 11:37 AM 0 1013 16 4 10 116 [Partly cloudy] [https://assets.weatherstack.com/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png] 250 WSW 9} {United Kingdom 55.010 2020-08-24 12:37 1598272620 -1.446 North Shields
Tyne and Wear Europe/London 1.0} {en North Shields,United Kingdom City m}}
解决方法
您可以通过创建一个temp变量来使用嵌套结构,因此可以在此处 https://play.golang.org/p/r8n4xO6UKH1
中查看完整的方法例如
package main
import "fmt"
type Current struct {
Cloudcover int64 `json:"cloudcover"`
Feelslike int64 `json:"feelslike"`
Humidity int64 `json:"humidity"`
IsDay string `json:"is_day"`
}
// Creating nested structure
type WeatherStruct struct {
current Current
}
func main() {
// Initializing the fields
// of the structure
result := WeatherStruct {
current: Current {10,10,"Beautiful"},}
// Display the values
fmt.Println("Cloudcover: ",result.current.Cloudcover)
fmt.Println("Feelslike: ",result.current .Feelslike)
fmt.Println("Humidity: ",result.current.Humidity)
fmt.Println("IsDay: ",result.current.IsDay)
}
我希望这个例子可以帮助您
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。