首页 > 后端开发 > Golang > 如何在 Go 中解析嵌套的 JSON HTTP 响应?

如何在 Go 中解析嵌套的 JSON HTTP 响应?

Patricia Arquette
发布: 2024-11-29 18:36:18
原创
642 人浏览过

How to Parse a Nested JSON HTTP Response in Go?

使用 Go 解析 JSON HTTP 响应

要在 Golang 中解析来自 HTTP 请求的 JSON 响应,您可以使用 JSON 解码将将响应正文转换为反映 JSON 结构的结构。

代码示例

以下代码演示了如何解析具有嵌套结构的 JSON 响应以获取“ip”的值:

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
    "net/http"
    "time"
)

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"`
}

func main() {

    m := []byte(`{
        "type": "example",
        "data": {
            "name": "abc",
            "labels": {
                "key": "value"
            }
        },
        "subsets": [
            {
                "addresses": [
                    {
                        "ip": "192.168.103.178"
                    }
                ],
                "ports": [
                    {
                        "port": 80
                    }
                ]
            }
        ]
    }`)

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

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

    if err != nil {
        log.Fatal(err)
    }

    // Iterate over subsets and addresses to access each IP
    for _, s := range val.Subsets {
        for _, a := range s.Addresses {
            fmt.Println(a.IP)
        }
    }

}
登录后复制

通过利用 JSON 解码来创建一个结构体镜像 JSON 结构,您可以动态访问和解析响应中的数据,包括嵌套元素,例如“ip”字段。

以上是如何在 Go 中解析嵌套的 JSON HTTP 响应?的详细内容。更多信息请关注PHP中文网其他相关文章!

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