Maison >développement back-end >Golang >Comment désassembler en toute sécurité les chaînes JSON échappées dans Go ?
Récupération des chaînes JSON pour le démarshaling
Lorsque vous travaillez avec Sockjs et Go, vous pouvez rencontrer des problèmes lors de l'analyse des chaînes JSON envoyées depuis un client JavaScript en raison de s'échapper. Le client JavaScript peut échapper aux chaînes et les envoyer sous forme de []byte, ce qui entraîne des difficultés de démarshaling.
Pour résoudre ce problème, vous pouvez utiliser la fonction strconv.Unquote pour supprimer l'échappement de la chaîne JSON. Cette fonction prend une chaîne comme argument et renvoie une version sans échappement.
Solution :
import ( "encoding/json" "fmt" "strconv" ) // Code goes here. 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) }
Sortie :
{"channel":"buu","name":"john","msg":"doe"} <nil> buu john doe
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!