Pengendalian Ralat dalam Golang JSON Marshalling
Struktur data JSON tidak boleh mewakili rujukan kitaran dan fungsi json.Marshal Go tidak boleh mengendalikannya. Akibatnya, menghantar struktur kitaran kepada Marshal membawa kepada rekursi tak terhingga dan panik masa jalan.
Di luar struktur kitaran, json.Marshal juga boleh mengembalikan ralat bukan nol dalam situasi di mana ia menemui jenis yang tidak disokong atau nilai tidak sah.
Jenis Tidak Disokong
Marshal mengembalikan UnsupportedTypeError apabila cuba menyusun jenis data yang tidak disokong. Contohnya:
<code class="go">import "encoding/json" func main() { ch := make(chan int) _, err := json.Marshal(ch) if _, ok := err.(*json.UnsupportedTypeError); ok { // Error: Unmarshal: unsupported type: chan int } }</code>
Nilai Tidak Disokong
Marshal juga boleh mengembalikan UnsupportedValueError apabila cuba menyusun nilai yang tidak sah. Contohnya:
<code class="go">import ( "encoding/json" "math" ) func main() { positiveInfinity := math.Inf(1) _, err := json.Marshal(positiveInfinity) if _, ok := err.(*json.UnsupportedValueError); ok { // Error: json: unsupported value: +Inf } }</code>
Dengan memahami syarat ini, pembangun boleh mengendalikan ralat dengan anggun dan memastikan json.Marshal mengembalikan hasil yang diharapkan atau mengendalikan ralat yang sesuai.
Atas ialah kandungan terperinci Bagaimanakah anda Mengendalikan Ralat Semasa JSON Marshalling di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!