Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menghuraikan Respons HTTP JSON Bersarang dalam Go?

Bagaimana untuk Menghuraikan Respons HTTP JSON Bersarang dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-29 18:36:18705semak imbas

How to Parse a Nested JSON HTTP Response in Go?

Menghuraikan JSON HTTP Response menggunakan Go

Untuk menghuraikan respons JSON daripada permintaan HTTP di Golang, anda boleh menggunakan penyahkodan JSON untuk menukar badan tindak balas ke dalam struct yang mencerminkan struktur JSON.

Kod Contoh

Kod berikut menunjukkan cara menghuraikan respons JSON dengan struct bersarang untuk mendapatkan nilai "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)
        }
    }

}

Dengan memanfaatkan penyahkodan JSON untuk mencipta struct yang mencerminkan struktur JSON, anda boleh mengakses dan menghuraikan data secara dinamik dalam respons, termasuk elemen bersarang seperti medan "ip".

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Respons HTTP JSON Bersarang dalam Go?. 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