在Go 中使用Sockjs 時,當JavaScript 用戶端將JSON 資料作為轉義字串傳輸時,可能會遇到挑戰。這可能會導致解析錯誤,例如「json:無法將字串解組為main.Msg 類型的Go 值。」
要避免此問題,請使用strconv 預處理JSON 字串。取消引用。它的工作原理如下:
package main import ( "encoding/json" "fmt" "strconv" ) type Msg struct { Channel string Name string Msg string } func main() { var msg Msg val := []byte(`"{\"channel\":\"buu\",\"name\":\"john\", \"msg\":\"doe\"}"`) s, _ := strconv.Unquote(string(val)) // Unmarshal the unquoted JSON string err := json.Unmarshal([]byte(s), &msg) fmt.Println(s) fmt.Println(err) fmt.Println(msg.Channel, msg.Name, msg.Msg) }
在此範例中,我們使用 strconv.Unquote 從 JSON 字串中刪除轉義字元。一旦取消引用,我們就將其解組到 Msg 結構中。這種方法解決了解析錯誤並允許我們正確存取資料。
以上是如何使用 SockJS 在 Go 中解組轉義 JSON 字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!