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

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

Mary-Kate Olsen
リリース: 2024-12-31 10:09:10
オリジナル
199 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート