首頁 >後端開發 >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