JSON Key Names with Spaces: Unmarshalling Made Possible
Deserialisasi data JSON dengan kunci kompleks yang mengandungi ruang selalunya boleh menimbulkan cabaran semasa unmarshalling. Mari kita siasat contoh khusus menggunakan pengekodan/pustaka json dalam Go.
Masalah:
Pertimbangkan skema JSON berikut:
[ {"Na me": "Platypus", "Order": "Monotremata"}, {"Na me": "Quoll", "Order": "Dasyuromorphia"} ]
Menggunakan pengekodan standard/pustaka json untuk menyahmarshal data ini ke dalam Go berikut struct:
type Animal struct { Name string `json:"Na me"` Order string `json:"Order,omitempty"` }
menghasilkan medan "Nama" kosong disebabkan oleh ruang dalam kekunci JSON.
Punca:
Ruang dalam kekunci JSON mengelirukan proses unmarshalling. Perpustakaan cuba memadankan kekunci "Na me" dengan medan dalam struct Animal, tetapi tiada medan sepadan.
Penyelesaian:
Untuk menyelesaikan isu ini , pastikan teg medan struct dalam tag json menyatakan nama kunci yang betul, termasuk ruang:
type Animal struct { Name string `json:"Na me"` Order string `json:"Order,omitempty"` }
Dengan ini penandaan yang disemak, proses unmarshalling boleh berjaya memetakan kekunci JSON ke medan struct yang betul, menghasilkan output yang dijangkakan:
[ {Name:Platypus Order:Monotremata} {Name:Quoll Order:Dasyuromorphia} ]
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahmarshal JSON dengan Ruang dalam Nama Utama Menggunakan `pengekodan/json` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!