Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengekstrak Alamat IP daripada Respons HTTP JSON di Golang?

Bagaimana untuk Mengekstrak Alamat IP daripada Respons HTTP JSON di Golang?

Patricia Arquette
Patricia Arquetteasal
2024-12-01 18:50:10839semak imbas

How to Extract an IP Address from a JSON HTTP Response in Golang?

Menghuraikan Respons HTTP JSON Menggunakan Golang

Menghuraikan respons HTTP JSON dalam Go membolehkan pembangun mengekstrak dan memproses data dengan cekap. Soalan ini menangani senario di mana pengguna berusaha untuk mengekstrak alamat IP daripada respons JSON.

Kod Go yang disediakan cuba menghuraikan JSON menggunakan fungsi json.Unmarshal. Walau bagaimanapun, ia memperuntukkan data yang dinyahkodkan kepada struct svc yang tidak menggambarkan struktur JSON dengan tepat.

Untuk menghuraikan JSON dengan betul, anda harus mentakrifkan struct yang mencerminkan struktur JSON, seperti yang ditunjukkan dalam kod berikut:

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

Setelah anda menentukan struct, anda boleh menggunakan json.NewDecoder untuk menyahkod respons JSON menjadi contoh struct Contoh:

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

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

Menggunakan pendekatan ini, anda boleh mengakses alamat IP dengan menggelung melalui hirisan Subset dan Alamat dalam struct Contoh yang dihuraikan:

for _, s := range val.Subsets {
    for _, a := range s.Addresses {
        fmt.Println(a.IP)
    }
}

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Alamat IP daripada Respons HTTP JSON di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn