Bolehkah Marshalling a Map[rentetan]ke JSON Mengembalikan Ralat?
Secara amnya, menyusun peta[rentetan]yang sah ke JSON menggunakan json.Marshal() tidak mungkin mengakibatkan ralat. Ini kerana kedua-dua kunci dan nilai dalam JSON ialah rentetan Unicode yang sah yang diwakili oleh Go menggunakan urutan bait berkod UTF-8.
Walau bagaimanapun, terdapat beberapa situasi luar biasa yang perlu dipertimbangkan:
m := map[string]string{"\xff": "a"} data, err := json.Marshal(m) // Output: {"\ufffd":"a"} <nil>
m := map[string]string{"a": "b"} go func() { for { m["c"] = "d" } }() for { if _, err := json.Marshal(m); err != nil { // Error: "concurrent map iteration and map write" } }
Walaupun secara amnya tidak perlu untuk mengendalikan ralat semasa menyusun peta[rentetan]rentetan ke JSON, amalan pengaturcaraan yang baik menentukan untuk menyemak ralat dalam semua kes, walaupun dalam situasi di mana kemungkinan ralat adalah rendah.
Atas ialah kandungan terperinci Bolehkah Marshalling a Go `metakan[rentetan]rentetan` ke JSON Gagal, dan Dalam Keadaan Apa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!