在 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中文网其他相关文章!