Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Mengendalikan Respons JSON Dinamik dengan Kekunci Tidak Dapat Diramalkan dengan Cekap dalam Go?

Bagaimanakah Saya Boleh Mengendalikan Respons JSON Dinamik dengan Kekunci Tidak Dapat Diramalkan dengan Cekap dalam Go?

Susan Sarandon
Lepaskan: 2024-11-29 01:37:11
asal
285 orang telah melayarinya

How Can I Efficiently Handle Dynamic JSON Responses with Unpredictable Keys in Go?

Pemetaan JSON Dinamik dalam Go Menggunakan Peta

Dalam Go, memetakan respons JSON dinamik dengan kekunci yang tidak dapat diramalkan boleh menjadi satu cabaran. Walau bagaimanapun, menggunakan peta menawarkan penyelesaian yang fleksibel.

Pertimbangkan tindak balas JSON berikut, dengan kekunci berbeza:

{
"items": [
{"name": "thing",
"image_urls": {
"50x100": [{
"url": "http://site.com/images/1/50x100.jpg",
"width": 50,
"height": 100
}, {
"url": "http://site.com/images/2/50x100.jpg",
"width": 50,
"height": 100
}],
"200x300": [{
"url": "http://site.com/images/1/200x300.jpg",
"width": 200,
"height": 300
}],
"400x520": [{
"url": "http://site.com/images/1/400x520.jpg",
"width": 400,
"height": 520
}]
}
}
]
}
Salin selepas log masuk

Untuk menangkap sifat dinamik ini, cipta struct berasaskan peta. Peta dalam Go membenarkan kunci dan nilai sewenang-wenangnya, menjadikannya sesuai untuk senario ini.

type Items map[string][]ImageURL
Salin selepas log masuk

Di sini, struktur Item ialah peta dengan kekunci rentetan (mewakili kekunci JSON yang berbeza-beza) dan nilai jenis [] ImageURL.

Untuk menggunakan struct ini, tentukan struct ImageURL untuk imej individu entri:

type ImageURL struct {
    URL    string
    Width  int
    Height int
}
Salin selepas log masuk

Kini, anda boleh menyahmarshal respons JSON terus ke dalam struct Item:

err := json.Unmarshal(data, &items)
if err != nil {
    // Handle error
}
Salin selepas log masuk

Pendekatan ini menyediakan pemetaan fleksibel untuk respons JSON dinamik, membolehkan anda menangkap data tanpa perlu mentakrifkan semua kunci yang mungkin.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Respons JSON Dinamik dengan Kekunci Tidak Dapat Diramalkan dengan Cekap 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