首頁 > 後端開發 > Golang > 如何使用 SockJS 在 Go 中解組轉義 JSON 字串?

如何使用 SockJS 在 Go 中解組轉義 JSON 字串?

Patricia Arquette
發布: 2024-12-22 16:29:10
原創
679 人瀏覽過

How to Unmarshall Escaped JSON Strings in Go with SockJS?

解組轉義JSON 字串

在Go 中使用Sockjs 時,當JavaScript 用戶端將JSON 資料作為轉義字串傳輸時,可能會遇到挑戰。這可能會導致解析錯誤,例如「json:無法將字串解組為main.Msg 類型的Go 值。」

解決方案

要避免此問題,請使用strconv 預處理JSON 字串。取消引用。它的工作原理如下:

package main

import (
    "encoding/json"
    "fmt"
    "strconv"
)

type Msg struct {
    Channel string
    Name   string
    Msg     string
}

func main() {
    var msg Msg
    val := []byte(`"{\"channel\":\"buu\",\"name\":\"john\", \"msg\":\"doe\"}"`)

    s, _ := strconv.Unquote(string(val))

    // Unmarshal the unquoted JSON string
    err := json.Unmarshal([]byte(s), &msg)

    fmt.Println(s)
    fmt.Println(err)
    fmt.Println(msg.Channel, msg.Name, msg.Msg)
}
登入後複製

在此範例中,我們使用 strconv.Unquote 從 JSON 字串中刪除轉義字元。一旦取消引用,我們就將其解組到 Msg 結構中。這種方法解決了解析錯誤並允許我們正確存取資料。

以上是如何使用 SockJS 在 Go 中解組轉義 JSON 字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板