使用 Golang 解析 JSON HTTP 响应
在 Go 中解析 JSON HTTP 响应可以让开发人员高效地提取和处理数据。此问题解决了用户试图从 JSON 响应中提取 IP 地址的场景。
提供的 Go 代码尝试使用 json.Unmarshal 函数解析 JSON。但是,它将解码后的数据分配给一个不能准确反映 JSON 结构的 struct svc。
要正确解析 JSON,您应该定义镜像 JSON 结构的结构,如以下代码所示:
type Example struct { Type string `json:"type,omitempty"` Subsets []Subset `json:"subsets,omitempty"` } type Subset struct { Addresses []Address `json:"addresses,omitempty"` } type Address struct { IP string `json:"IP,omitempty"` }
定义结构后,您可以使用 json.NewDecoder 将 JSON 响应解码为示例的实例struct:
r := bytes.NewReader(m) decoder := json.NewDecoder(r) val := &Example{} err := decoder.Decode(val)
使用此方法,您可以通过循环解析解析的示例结构中的子集和地址片段来访问 IP 地址:
for _, s := range val.Subsets { for _, a := range s.Addresses { fmt.Println(a.IP) } }
以上是如何在 Golang 中从 JSON HTTP 响应中提取 IP 地址?的详细内容。更多信息请关注PHP中文网其他相关文章!