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

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

Patricia Arquette
Libérer: 2024-12-22 16:29:10
original
679 Les gens l'ont consulté

How to Unmarshall Escaped JSON Strings in Go with SockJS?

Désorganisation des chaînes JSON échappées

Lors de l'utilisation de Sockjs avec Go, on peut rencontrer des défis lorsque les clients JavaScript transmettent des données JSON sous forme de chaînes d'échappement. Cela peut conduire à des erreurs d'analyse telles que "json : impossible de transformer la chaîne en valeur Go de type main.Msg."

Solution

Pour contourner ce problème, pré-traitez la chaîne JSON à l'aide de strconv. Fin de citation. Voici comment cela fonctionne :

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

Dans cet exemple, nous utilisons strconv.Unquote pour supprimer les caractères d'échappement de la chaîne JSON. Une fois non cité, nous procédons à sa désorganisation dans la structure Msg. Cette approche résout l'erreur d'analyse et nous permet d'accéder correctement aux données.

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