Masalah
Apabila cuba menyahkod rentetan JSON yang mengandungi JSON bersarang objek, aplikasi menerima ralat: "aksara tidak sah 'h' selepas kekunci objek: nilai pasangan."
Penyelesaian
Ralat disebabkan oleh aksara yang tidak sah dalam nilai objek JSON bersarang. Untuk menyahkod JSON dengan betul, ia mesti dilakukan dalam dua langkah:
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"` } // Parse input JSON string 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) } // Decode nested JSON object var args arg if err := json.Unmarshal([]byte(m.Args[0]), &args); err != nil { log.Fatal(err) }
Langkah pertama menyahkod objek JSON luar ke dalam struktur utama, yang mengandungi tatasusunan rentetan. Langkah kedua menggelung melalui tatasusunan dan menyahkod setiap rentetan sebagai objek JSON bersarang. Ini membolehkan aplikasi menghuraikan data JSON dengan betul dan mengelakkan ralat.
Atas ialah kandungan terperinci Bagaimana untuk Menyahkod Rentetan JSON yang Mengandungi Rentetan Dikodkan JSON Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!