Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menghuraikan Medan \'ip\' daripada JSON HTTP Response dalam Go?

Bagaimana untuk Menghuraikan Medan \'ip\' daripada JSON HTTP Response dalam Go?

Linda Hamilton
Lepaskan: 2024-11-27 12:59:13
asal
404 orang telah melayarinya

How to Parse an

Menghuraikan Respons HTTP JSON dalam Go

Dalam artikel ini, kami akan menangani cabaran pengekodan biasa: menghuraikan respons JSON daripada permintaan HTTP dalam bahasa pengaturcaraan Go. Kami akan melihat contoh untuk membantu anda menguraikan respons dan mengekstrak nilai tertentu, seperti medan "ip".

Pertimbangkan output curl berikut sebagai contoh:

{
  "type":"example",
  "data":{
    "name":"abc",
    "labels":{
      "key":"value"
    }
  },
  "subsets":[
    {
      "addresses":[
        {
          "ip":"192.168.103.178"
        }
      ],
      "ports":[
        {
          "port":80
        }
      ]
    }
  ]
}
Salin selepas log masuk

Matlamat kami ialah untuk mendapatkan semula nilai medan "ip" daripada respons ini.

JSON Berasaskan Struktur Penyahkodan

Untuk menyahkod respons JSON, kami akan mencipta struktur yang mencerminkan struktur JSON. Structs dalam Go berfungsi sebagai templat untuk data kami, mentakrifkan bentuk dan medannya.

Berikut ialah kod sampel yang menunjukkan penyahkodan JSON berasaskan struct:

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() {

    jsonResponse := `{
        "type": "example",
        "data": {
            "name": "abc",
            "labels": {
                "key": "value"
            }
        },
        "subsets": [
            {
                "addresses": [
                    {
                        "ip": "192.168.103.178"
                    }
                ],
                "ports": [
                    {
                        "port": 80
                    }
                ]
            }
        ]
    }`

    r := bytes.NewReader([]byte(jsonResponse))
    decoder := json.NewDecoder(r)

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

    if err != nil {
        log.Fatal(err)
    }

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

Menyahkod Kunci Tertentu

Dalam kod di atas, kami menggunakan struct yang dipanggil Contoh untuk memadankan struktur respons JSON. Dengan menggunakan penyahkod, kami kemudiannya dapat menyahkod respons ke dalam contoh struct kami.

Untuk mengekstrak nilai "ip", kami mengakses keping Alamat, yang merupakan kepingan struct Alamat. Setiap struct Alamat mengandungi medan "ip", yang membolehkan kami mencetak nilainya.

Dengan mengikuti langkah ini, anda boleh menghuraikan respons HTTP JSON dengan berkesan dalam Go dan mendapatkan semula nilai data tertentu, seperti medan "ip" dalam contoh ini. Sentiasa ingat untuk mencipta struct yang sepadan dengan struktur JSON dan gunakan penyahkod untuk mengisinya dengan data respons.

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Medan \'ip\' daripada JSON HTTP Response dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan