首页 > 后端开发 > Golang > 如何从 Golang 中的 JSON HTTP 响应中提取'ip”值?

如何从 Golang 中的 JSON HTTP 响应中提取'ip”值?

Linda Hamilton
发布: 2024-12-02 10:28:11
原创
968 人浏览过

How to Extract the

使用 Golang 解析 JSON HTTP 响应:检索“ip”的值

在本文中,我们将解决与解析相关的问题Golang 中的 JSON HTTP 响应,特别是如何从示例 JSON 输出中检索“ip”的值(类似于问题。

目标是创建一个程序,可以从 JSON 响应中提取 IP 地址并将其打印在控制台上。为了实现这一目标,我们将利用 Golang 的内置 JSON 解析功能。

让我们首先定义一个名为 Example 的自定义结构,它反映 JSON 响应的结构。该结构将具有“类型”、“数据”和“子集”字段。同样,我们将为 Subset 和 Address 定义嵌套结构,以包含 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"`
}
登录后复制

在 main() 函数中,我们将从 HTTP 请求中读取 JSON 响应并对其进行解码进入示例结构。这将涉及使用 json.Decoder 类型来解析响应正文的字节流。

m := []byte(`{...}`) // Sample JSON response from HTTP request body

r := bytes.NewReader(m)
decoder := json.NewDecoder(r)

val := &Example{}
err := decoder.Decode(val)

if err != nil {
    log.Fatal(err)
}
登录后复制

一旦 JSON 响应被解码到示例结构中,我们就可以通过迭代来访问“ip”值子集和地址切片。

for _, s := range val.Subsets {
    for _, a := range s.Addresses {
        fmt.Println(a.IP)
    }
}
登录后复制

该程序的输出将是所需的“ip”值,在本例中为“192.168.103.178。”

通过使用这种方法,我们可以使用 Golang 的 JSON 解析功能以干净高效的方式解析 JSON HTTP 响应并检索特定值,例如“ip”。

以上是如何从 Golang 中的 JSON HTTP 响应中提取'ip”值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板