Maison > développement back-end > Golang > Comment désorganiser les chaînes JSON échappées dans Go ?

Comment désorganiser les chaînes JSON échappées dans Go ?

Barbara Streisand
Libérer: 2024-12-27 16:35:09
original
873 Les gens l'ont consulté

How to Unmarshal Escaped JSON Strings in Go?

Démarshaling des chaînes JSON échappées dans Go

Lors de l'utilisation de SockJS avec Go, l'analyse des données JSON envoyées par un client JavaScript sous forme de tranche d'octets peut être gênante. Le serveur reçoit le JSON échappé, mais tente de l'analyser comme une chaîne ordinaire, ce qui entraîne l'erreur « json : impossible de transformer la chaîne en valeur Go de type main.Msg ».

La solution réside dans l'utilisation de strconv .Unquote fonction avant de tenter de désorganiser le JSON. Cette fonction supprime les caractères d'échappement, vous laissant avec une chaîne qui peut être analysée en une valeur Go.

Voici un exemple modifié :

package main

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)
}
Copier après la connexion

Sortie :

{"channel":"buu","name":"john", "msg":"doe"}
<nil>
buu john doe
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal