


Bagaimana untuk Unmarshal JSON menjadi Array Objek dalam Go?
Nov 27, 2024 am 08:19 AMMenyahmarshall JSON kepada Tatasusunan Objek dalam Go
Menghuraikan data JSON ke dalam struktur Go tersuai adalah penting untuk banyak tugas pengaturcaraan. Soalan ini meneroka cara menghuraikan JSON ke dalam tatasusunan objek dalam Go.
Masalahnya
Data JSON yang disediakan dalam soalan mempamerkan format tertentu, di mana setiap kunci mewakili pengecam unik, dan nilai yang sepadan ialah objek bersarang yang mengandungi beberapa atribut. Matlamatnya adalah untuk menyahmarshal data JSON ini ke dalam tatasusunan struct, di mana setiap elemen dalam tatasusunan mewakili salah satu objek bersarang dalam JSON.
Coretan kod yang disediakan dalam soalan cuba menghuraikan JSON ke dalam Struktur MonsterCollection, yang mengandungi peta rentetan kepada struct Monster. Walau bagaimanapun, pengkompil melaporkan ralat operasi yang tidak sah kerana jenis tidak sepadan.
Penyelesaian
Isu utama dengan coretan kod ialah ia menyahmarshal JSON ke dalam antara muka jenis {}, yang membenarkan penaipan dinamik tetapi mempunyai kefungsian terhad. Untuk mengakses medan khusus dalam objek bersarang, pembolehubah v dalam gelung perlu ditegaskan jenis kepada jenis yang betul.
Selain itu, kod cuba memasukkan objek Monster ke dalam peta dengan kekunci integer. Walau bagaimanapun, peta Pool ialah peta rentetan kepada struct Monster, jadi kekuncinya mestilah rentetan.
Kod berikut menunjukkan cara untuk menyahmarshal JSON dengan betul ke dalam tatasusunan struct Monster:
type Monster struct { MonsterId int32 `json:"monster-id"` Level int32 `json:"level"` SkillLevel int32 `json:"skill-level"` AimerId int32 `json:"aimer-id"` } type MonsterCollection struct { Pool map[string]Monster } func (mc *MonsterCollection) FromJson(jsonStr string) error { var data map[string]Monster b := []byte(jsonStr) err := json.Unmarshal(b, &data) if err != nil { return err } mc.Pool = data return nil }
Dalam kod ini:
- Struktur Monster menggunakan tag json untuk memetakan nama medan kepada yang sepadan Kekunci JSON.
- Struktur MonsterCollection mengandungi peta rentetan kepada struct Monster, menggunakan pengecam unik sebagai kunci.
- Kaedah FromJson MonsterCollection mengambil rentetan JSON sebagai hujah, membongkarnya menjadi peta data, menyerahkan peta kepada medan Pool dan mengembalikan sebarang ralat dihadapi.
Kini, data JSON boleh dibongkar ke dalam struktur MonsterCollection dan diakses melalui peta Pool, yang menyediakan cara mudah untuk mendapatkan semula raksasa individu menggunakan pengecam unik mereka.
Atas ialah kandungan terperinci Bagaimana untuk Unmarshal JSON menjadi Array Objek dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

GO Language Pack Import: Apakah perbezaan antara garis bawah dan tanpa garis bawah?

Bagaimana saya menulis objek dan stub untuk ujian di GO?

Bagaimana untuk melaksanakan pemindahan maklumat jangka pendek antara halaman dalam kerangka beego?

Bagaimana saya boleh menggunakan alat pengesanan untuk memahami aliran pelaksanaan aplikasi saya?

Bagaimana saya boleh menentukan kekangan jenis tersuai untuk generik di GO?

Bagaimana cara menukar senarai hasil pertanyaan mysql ke dalam slice struktur tersuai dalam bahasa Go?

Bagaimana cara menulis fail dalam bahasa Go dengan mudah?

Bagaimanakah saya boleh menggunakan alat linter dan analisis statik untuk meningkatkan kualiti dan pemeliharaan kod pergi saya?
