ホームページ >バックエンド開発 >Golang >Go でエスケープされた JSON 文字列を安全にアンマーシャリングする方法

Go でエスケープされた JSON 文字列を安全にアンマーシャリングする方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-31 10:09:10229ブラウズ

How to Safely Unmarshal Escaped JSON Strings in Go?

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。