dongpo7467 2017-07-25 20:48
浏览 30
已采纳

如何在golang中的嵌套结构范围内?

I am new to Golang: These are my defined struct:

type Name map[string]Info

type Info struct {
    Addresses string                             `json:"addresses"`
    Host   map[string]Server                     `json:"host"`
}

type Server struct {
   Ipaddress     string        `json:"ip"`
   Status        string        `json:"status"`
}

var result Name

after unmarshalling Json i get:

result = [
    user1:{
        192.168.98.0/26
        map[
            xx.user1.domain.com:{192.168.98.1 good} 
            xx.user1.domain.com:{192.168.98.3 good} 
            xx.user1.domain.com:{192.168.98.4 Bad}
        ]
    } 
    user2: {
        192.168.99.0/26
        map[
            xx.user2.domain.com:{192.168.99.1 good}
        ]
    }
]

How to range over this Json to get the ipaddress which has a status=="good" for the particular user ?

I am trying to do this way:

  for j , _ := range result["user1"].Servers {
     if a := result["user1"].Servers[j]); a == "good" {
      //Problem is here I am not sure how to further scan the ip and status
      //do something

}

    }
}
  • 写回答

1条回答 默认 最新

  • duanhan5230 2017-07-25 21:41
    关注

    I think you want:

    for _ , i := range result {
        for  _, j := range i.Host {
            if j.Status == "good" {
                server := j.Ip
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭