Rumah > pembangunan bahagian belakang > Golang > Bagaimana Mengendalikan Respons JSON dengan Kekunci Dinamik dalam Go?

Bagaimana Mengendalikan Respons JSON dengan Kekunci Dinamik dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-12-01 18:58:13
asal
245 orang telah melayarinya

How to Handle JSON Responses with Dynamic Keys in Go?

Mengendalikan Respons JSON dengan Kekunci Dinamik di Golang

Apabila menghadapi respons JSON dengan kekunci sewenang-wenangnya, adalah sukar untuk mencipta struct yang sepadan. Satu contoh sedemikian ialah respons JSON yang disediakan yang mengandungi peta bersarang dengan kekunci yang berbeza-beza yang mewakili saiz imej.

Untuk menangani isu ini, pertimbangkan untuk menggunakan struktur data berasaskan peta. Di Golang, peta ialah koleksi pasangan nilai kunci dengan kekuncinya adalah rentetan.

Penyelesaian:

Tentukan struct untuk mewakili kekunci "Item" luar :

type Items struct {
    Name string `json:"name"`
    Images map[string][]ImageUrl `json:"image_urls"`
}
Salin selepas log masuk

Di sini, medan "image_urls" diisytiharkan sebagai peta dengan kuncinya adalah rentetan (mewakili saiz imej) dan nilai adalah kepingan struct ImageUrl.

Struktur ImageUrl:

type ImageUrl struct {
    Url string `json:"url"`
    Width, Height int `json:"width,height"`
}
Salin selepas log masuk

Struktur ini mewakili URL imej individu dan dimensinya.

Penggunaan:

Untuk nyahmarshal JSON ke dalam struct Items, gunakan:

var items Items
json.Unmarshal(jsonData, &items)
Salin selepas log masuk

Faedah Menggunakan Peta:

  • Membolehkan pengendalian kunci dinamik.
  • Peta adalah cekap untuk mencari dan mendapatkan semula.
  • Menyediakan yang mudah dan cara yang fleksibel untuk mewakili data bersarang.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Respons JSON dengan Kekunci Dinamik 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