Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mengeluarkan Nilai \'ip\' daripada Respons HTTP JSON di Golang?

Bagaimanakah Saya Boleh Mengeluarkan Nilai \'ip\' daripada Respons HTTP JSON di Golang?

Susan Sarandon
Susan Sarandonasal
2024-12-09 02:36:10919semak imbas

How Can I Extract the

Menghuraikan JSON HTTP Response Menggunakan Golang

Untuk mendapatkan semula nilai "ip" daripada respons JSON yang disediakan, adalah disyorkan untuk menggunakan tersuai struct yang mencerminkan struktur JSON dan menyahkod respons dengan sewajarnya. Pertimbangkan kod berikut:

import (
    "bytes"
    "encoding/json"
    "fmt"
    "log"
)

// Define structs to match the JSON structure
type Example struct {
    Type    string   `json:"type"`
    Subsets []Subset `json:"subsets"`
}

type Subset struct {
    Addresses []Address `json:"addresses"`
}

type Address struct {
    IP string `json:"ip"`
}

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

    // Create a reader from the JSON input
    r := bytes.NewReader(m)
    decoder := json.NewDecoder(r)

    // Decode the JSON into the Example struct
    val := &Example{}
    if err := decoder.Decode(val); err != nil {
        log.Fatal(err)
    }

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

Pendekatan ini membenarkan penyahkodan respons JSON ke dalam struct tersuai, memberikan keupayaan untuk menggelung ke atas kepingan dan mendapatkan nilai tertentu dengan mengakses ahli struct (cth., a.IP). Kod yang disediakan menunjukkan aliran kerja hujung ke hujung membaca respons JSON, menyahkodnya ke dalam struktur dan mengekstrak nilai tertentu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nilai \'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