Bagaimana saya boleh menghuraikan rentetan JSON dengan pasangan kunci/nilai yang diketahui dan tidak diketahui ke dalam struct Go? Medan tidak diketahui boleh mempunyai sebarang nama dan jenis nilai (rentetan, bool, float64 atau int).
Buat struct dengan medan yang diketahui dan sekeping peta untuk medan yang tidak diketahui :
<code class="go">type Message struct { Known1 string `json:"known1"` Known2 string `json:"known2"` Unknowns []map[string]interface{} }</code>
Nyahmarsle rentetan JSON ke dalam struct ini:
<code class="go">json.Unmarshal([]byte(jsonMsg), &msg)</code>
Medan Tidak Diketahui akan mengandungi senarai peta yang mewakili pasangan kunci/nilai yang tidak diketahui.
Double Unmarshal:
Unmarshal dan Penukaran Jenis:
Ketiga-tiga penyelesaian adalah sah, tetapi yang paling mudah dan paling elegan ialah pendekatan berasaskan struct awal. Ia mengelakkan keperluan unmarshal tambahan atau penukaran jenis manual.
Atas ialah kandungan terperinci Bagaimana Menghuraikan JSON dengan Pasangan Kunci/Nilai Diketahui dan Tidak Diketahui ke dalam Go Struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!