我正在使用the answer here从api中获取一些json:
package main
import (
"encoding/json"
"fmt"
"log"
"net/http"
)
func main() {
resp, err := http.Get("http://api.openweathermap.org/data/2.5/forecast?id=524901&appid=1234")
if err != nil {
log.Fatal(err)
}
var generic map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&generic)
if err != nil {
log.Fatal(err)
}
fmt.Println(generic)
}
它正常工作,我有一个存储在generic
变量中的json地图。
当我打印时:
fmt.Println(generic["city"])
我回来了:
map[id:524901 name:Moscow coord:map[lon:37.615555 lat:55.75222] country:RU population:0 sys:map[population:0]]
现在我想访问城市名称。我正在尝试以下方法:
fmt.Println(generic["city"]["name"])
我得到错误:
muxTest / router.go:30:无效操作:generic [“city”] [“name”](类型 interface {}不支持索引)
还尝试了generic["city"].name
无效。
如何访问城市名称值?
答案 0 :(得分:1)
您需要将function toggleMenu(){
var mobileNav = document.getElementById('mobile_Nav');
var mobileNav_toggle = mobileNav.getAttribute("class");
if(mobileNav_toggle == "header_navigation_mobile") {
mobileNav_toggle == "header_navigation_mobile.is_open";
}
else {
mobileNav_toggle == "header_navigation_mobile";
}
alert(mobileNav_toggle);
}
的{{1}}投射到更有用的地方。在这种情况下,interface{}
再次map[string]interface{}
,因为map[string]interface{}
本身就是一张地图。您无法将其转换为其他内容,因为city
也是地图,因此无法将城市转换为coord
。