Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Unmarshal Nested JSON dengan Kekunci Dinamik Menggunakan Go?
Menyahmarshall Nested JSON dengan Dynamic Keys
Dalam struktur JSON yang kompleks, menghadapi objek bersarang dengan kekunci yang berubah secara dinamik boleh menimbulkan cabaran semasa unmarshalling. Pertimbangkan data JSON berikut:
{ "message": { "Server1.example.com": [ { "application": "Apache", "host": { "name": "/^Server-[13456]/" }, "owner": "User1", "project": "Web", "subowner": "User2" } ], "Server2.example.com": [ { "application": "Mysql", "host": { "name": "/^Server[23456]/" }, "owner": "User2", "project": "DB", "subowner": "User3" } ] }, "response_ms": 659, "success": true }
Penyelesaian:
Untuk menghapuskan JSON sedemikian dengan berkesan, pertimbangkan untuk menggunakan peta[rentetan]ServerStruct untuk objek bersarang dengan kekunci dinamik . Pendekatan ini membenarkan kemasukan berbilang pelayan dengan nama yang tidak diketahui.
Berikut ialah contoh struct yang dikemas kini:
type YourStruct struct { Success bool ResponseMS int Servers map[string]*ServerStruct } type ServerStruct struct { Application string Owner string [...] }
Dengan menambahkan tag JSON, anda boleh mengarahkan penyahkod untuk memetakan JSON tertentu medan ke medan struct yang sepadan. Berikut ialah teg yang dikemas kini:
type YourStruct struct { Success `json:"success"` ResponseMS `json:"response_ms"` Servers `json:"-"` } type ServerStruct struct { Application string `json:"application"` Owner string `json:"owner"` [...] }
Teg json:"-" pada medan "Pelayan" memastikan penyahkod melangkau pemetaan medan JSON terus ke medan "ServerStruct". Sebaliknya, ia memetakan medan ke peta[rentetan]ServerStruct.
Pendekatan ini menyediakan penyelesaian yang fleksibel untuk membongkar objek JSON bersarang dengan kekunci dinamik, membolehkan anda mengakses data dalam setiap objek pelayan dengan mudah.
Atas ialah kandungan terperinci Bagaimana untuk Unmarshal Nested JSON dengan Kekunci Dinamik Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!