Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahkod JSON dengan Rentetan Dikodkan JSON Terbenam?
Menyahkod JSON dengan Rentetan Dikodkan JSON Terbenam
Dalam konteks menghuraikan respons JSON yang kompleks daripada API luaran, masalah timbul disebabkan kepada kehadiran rentetan berkod JSON dalam objek JSON. Struktur JSON mengandungi medan yang dipanggil "teks" yang termasuk rentetan HTML. Apabila cuba menyahkod JSON ini menggunakan jenis tersuai, ralat akan berlaku.
Untuk menangani isu ini, proses penyahkodan dua langkah diperlukan:
type main struct { Name string `json:"name"` Args []string `json:"args"` } type arg struct { Method string `json:"method"` Params par `json:"params"` } type par struct { Channel string `json:"channel,omitempty"` Name string `json:"name,omitempty"` NameColor string `json:"nameColor,omitempty"` Text string `json:"text,omitempty"` Time int64 `json:"time,omitempty"` }
Contoh penyahkodan rentetan JSON yang disediakan:
str := `{"name":"message","args":["{\"method\":\"chatMsg\",\"params\":{\"channel\":\"channel\",\"name\":\"name\",\"nameColor\":\"B5B11E\",\"text\":\"<a href=\\"https://play.spotify.com/browse\\" target=\\"_blank\\">https://play.spotify.com/browse</a>\",\"time\":1455397119}}"]}` var m main if err := json.Unmarshal([]byte(str), &m); err != nil { log.Fatal(err) } var args arg if err := json.Unmarshal([]byte(m.Args[0]), &args); err != nil { log.Fatal(err) }
Dengan mengasingkan penyahkodan objek JSON luar dan rentetan JSON terbenam, ia menjadi mungkin untuk mengendalikan struktur JSON bersarang dengan betul, menyelesaikan aksara tidak sah ralat.
Atas ialah kandungan terperinci Bagaimana untuk Menyahkod JSON dengan Rentetan Dikodkan JSON Terbenam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!