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 } ] } ] }
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) } } }
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!