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."
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) }
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!