アンマーシャリングのための 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 中国語 Web サイトの他の関連記事を参照してください。