首頁 > 後端開發 > Golang > 如何在 Go 中解析巢狀的 JSON HTTP 回應?

如何在 Go 中解析巢狀的 JSON HTTP 回應?

Patricia Arquette
發布: 2024-11-29 18:36:18
原創
665 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板