使用 Go 解组转义 JSON 字符串
在 Go 中使用 Sockjs 时,您可能会遇到将从 JavaScript 客户端接收到的转义 JSON 字符串解析为 [ ]字节。这可能会导致错误消息,例如“json:无法将字符串解组为 Go 值”。要解决此问题,您可以在解组之前使用简单的方法对字符串进行转义。
使用 strconv.Unquote
strconv.Unquote() 是一个内置函数从字符串中删除转义字符的 Go 函数。通过将其应用于接收到的 JSON 字符串,您可以有效地对其进行转义。
以下是具体操作方法:
import ( "encoding/json" "fmt" "strconv" ) type Msg struct { Channel string Name string Msg string } func main() { var msg Msg var val []byte = []byte(`"{\"channel\":\"buu\",\"name\":\"john\", \"msg\":\"doe\"}"`) s, _ := strconv.Unquote(string(val)) err := json.Unmarshal([]byte(s), &msg) fmt.Println(s) fmt.Println(err) fmt.Println(msg.Channel, msg.Name, msg.Msg) }
在此示例中,使用 strconv 成功对转义的 JSON 字符串进行转义.Unquote(),数据被解析成Msg结构体,没有错误。
以上是如何在 Go 中解组转义 JSON 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!