JSON-Strings zum Unmarshaling aufheben
Bei der Arbeit mit Sockjs und Go können Probleme beim Parsen von JSON-Strings auftreten, die von einem JavaScript-Client gesendet werden entkommen. Der JavaScript-Client maskiert möglicherweise die Zeichenfolgen und sendet sie als []Byte, was zu Unmarshaling-Schwierigkeiten führt.
Um dieses Problem zu beheben, können Sie die Funktion strconv.Unquote verwenden, um das Escapezeichen aus der JSON-Zeichenfolge zu entfernen. Diese Funktion verwendet einen String als Argument und gibt eine Version ohne Escapezeichen zurück.
Lösung:
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) }
Ausgabe:
{"channel":"buu","name":"john","msg":"doe"} <nil> buu john doe
Das obige ist der detaillierte Inhalt vonWie entmarshaliere ich sicher entkommene JSON-Strings in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!