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