Heim >Backend-Entwicklung >Golang >Wie entmarshalliere ich maskierte JSON-Strings in Go mit SockJS?
Beim Einsatz von Sockjs mit Go kann es zu Herausforderungen kommen, wenn JavaScript-Clients JSON-Daten als maskierte Strings übertragen. Dies kann zu Parsing-Fehlern wie „json: String kann nicht in Go-Wert vom Typ main.Msg entmarshaliert werden“ führen.
Um dieses Problem zu umgehen, verarbeiten Sie den JSON-String mit strconv vor. Zitat aufheben. So funktioniert es:
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) }
In diesem Beispiel verwenden wir strconv.Unquote, um die Escape-Zeichen aus der JSON-Zeichenfolge zu entfernen. Sobald es nicht mehr in Anführungszeichen gesetzt ist, fahren wir mit dem Unmarshalieren in der Msg-Struktur fort. Dieser Ansatz behebt den Parsing-Fehler und ermöglicht uns den korrekten Zugriff auf die Daten.
Das obige ist der detaillierte Inhalt vonWie entmarshalliere ich maskierte JSON-Strings in Go mit SockJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!