试图为地图的每个部分创建一个 for 循环。map[asn:AS10 time:1.428790768e+09 ipv4s:[ 68.114.75.0/24 216.215.56.0/22 216.215.60.0/22] ipv6s:[ 2607:f3f8::/32]]上面是地图,我想尝试为中的每个值创建一个 for 循环ipv4s。我已经尝试过,但我显然没有正确地做到这一点,因为它只是基于我的 php 知识。:for json_map["ipv4s"]{ //whatever }PHP版本,如果有人需要一个例子而不是我试图解释:foreach($obj->ipv4s as $value) { echo $value; // return an ip}更新package mainimport ( "fmt" "net/http" "os" "encoding/json" )func main() { response, err := http.Get("https://www.enjen.net/asn-blocklist/index.php?asn=" + os.Args[1] + "&type=json_split&api=1") if err != nil { fmt.Printf("%s", err) os.Exit(1) } else { defer response.Body.Close() dec := json.NewDecoder(response.Body) if dec == nil { panic("Failed to start decoding JSON data") } json_map := make(map[string]interface{}) err = dec.Decode(&json_map) if err != nil { panic(err) } fmt.Printf("%v\n", json_map) for i := range json_map { for _, ip := range json_map[i]["ipv4s"] { fmt.Printf(ip) } } }}
1 回答
米脂
TA贡献1836条经验 获得超3个赞
一旦您完成了Go教程,Effective Go就是一个很好的来源。那里还描述了如何迭代切片:
for key, value := range json_map {
// ...
}
或者,如果您不需要密钥:
for _, value := range json_map {
// ...
}
如果它是地图切片,您可能需要嵌套两个循环:
for i := range json_map {
for _, ip := range json_map[i]["ipv4s"] {
// ...
}
}
- 1 回答
- 0 关注
- 217 浏览
添加回答
举报
0/150
提交
取消