首页 >后端开发 >Golang >如何在 Golang 中从 JSON HTTP 响应中提取 IP 地址?

如何在 Golang 中从 JSON HTTP 响应中提取 IP 地址?

Patricia Arquette
Patricia Arquette原创
2024-12-01 18:50:10787浏览

How to Extract an IP Address from a JSON HTTP Response in Golang?

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn