取消转义 JSON 字符串以进行解组
使用 Sockjs 和 Go 时,由于以下原因,在解析从 JavaScript 客户端发送的 JSON 字符串时可能会遇到问题逃跑。 JavaScript 客户端可能会对字符串进行转义并将其作为 []byte 发送,从而导致解组困难。
要解决此问题,您可以使用 strconv.Unquote 函数来删除 JSON 字符串中的转义。此函数接受字符串作为参数并返回未转义的版本。
解决方案:
import ( "encoding/json" "fmt" "strconv" ) // Code goes here. 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) }
输出:
{"channel":"buu","name":"john","msg":"doe"} <nil> buu john doe
以上是如何在 Go 中安全地解组转义 JSON 字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!