Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyahmarshall Escaped JSON Strings dalam Go?

Bagaimana untuk Menyahmarshall Escaped JSON Strings dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-12-26 16:55:14809semak imbas

How to Unmarshall Escaped JSON Strings in Go?

Unmarshalling Escaped JSON Strings dengan Go

Apabila menggunakan Sockjs dengan Go, anda mungkin menghadapi masalah menghurai rentetan JSON yang terlepas yang diterima daripada klien JavaScript sebagai [ ]bait. Ini boleh membawa kepada mesej ralat seperti "json: cannot unmarshal string into Go". Untuk menyelesaikan isu ini, anda boleh menggunakan kaedah mudah untuk melepaskan rentetan sebelum menyahmarshall.

Menggunakan strconv.Unquote

strconv.Unquote() ialah terbina dalam Fungsi Go yang mengalih keluar aksara yang terlepas daripada rentetan. Dengan menerapkannya pada rentetan JSON yang diterima, anda boleh melepaskannya dengan berkesan.

Begini cara anda boleh melakukannya:

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

type Msg struct {
    Channel string
    Name string
    Msg string
}

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)
}

Dalam contoh ini, rentetan JSON yang terlepas berjaya dilepaskan menggunakan strconv .Unquote(), dan data dihuraikan ke dalam struct Msg tanpa ralat.

Atas ialah kandungan terperinci Bagaimana untuk Menyahmarshall Escaped JSON Strings dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn