Golang for 地图某些部分的循环

试图为地图的每个部分创建一个 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 main


import (

    "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)

            }

        }

    }

}


达令说
浏览 218回答 1
1回答

米脂

一旦您完成了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"] {      // ...    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go