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 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-26 16:55:14809parcourir

How to Unmarshall Escaped JSON Strings in Go?

Désagrégation des chaînes JSON échappées avec Go

Lors de l'utilisation de Sockjs avec Go, vous pouvez rencontrer des problèmes lors de l'analyse des chaînes JSON échappées reçues des clients JavaScript comme [ ]octet. Cela peut entraîner des messages d'erreur tels que « json : impossible de transformer la chaîne en valeur Go ». Pour résoudre ce problème, vous pouvez utiliser une méthode simple pour annuler l'échappement de la chaîne avant de l'annuler.

Utilisation de strconv.Unquote

strconv.Unquote() est un outil intégré Fonction Go qui supprime les caractères échappés d'une chaîne. En l'appliquant à la chaîne JSON reçue, vous pouvez effectivement la supprimer.

Voici comment procéder :

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

Dans cet exemple, la chaîne JSON échappée est supprimée avec succès à l'aide de strconv .Unquote(), et les données sont analysées dans la structure Msg sans erreurs.

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!

Déclaration:
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