Heim > Artikel > Backend-Entwicklung > Wie konvertiere ich UTF-8-Strings in Byte-Arrays für das JSON-Unmarshaling in Go?
Konvertieren von UTF-8-Strings in Byte-Arrays für das JSON-Unmarshaling
Um einen JSON-String zu entmarshalieren, muss man ein Array von Bytes ([]byte) als Eingabe für die angegebene Funktion. In diesem Artikel werden Methoden zum Konvertieren von UTF-8-Zeichenfolgen in []Byte für diesen Zweck untersucht.
Methode 1: Direkte Typkonvertierung
The Go Die Sprache ermöglicht die direkte Konvertierung von Zeichenfolgen in []byte mithilfe einer einfachen Typumwandlung:
s := "some text" b := []byte(s) // b is of type []byte
Diese Methode wird durch die Sprachspezifikation sanktioniert, in der angegeben ist, dass die Konvertierung einer Zeichenfolge in ein []byte führt zu einem Slice, der einzelne Bytes der Zeichenfolge enthält.
Methode 2: Verwendung eines io.Reader mit json.NewDecoder()
Alternativ kann ein io.Reader mit json.NewDecoder() verwendet werden. Der bereitgestellte io.Reader liest aus einer Zeichenfolge, ohne eine Kopie zu erstellen, wodurch der Prozess optimiert wird:
s := `{"somekey":"somevalue"}` var result interface{} err := json.NewDecoder(strings.NewReader(s)).Decode(&result)
Diese Methode vermeidet den Aufwand für das Kopieren des Zeichenfolgeninhalts in einen [ ]byte, wodurch es für größere JSON-Texte bevorzugt wird.
Hinweis: Für kleine JSON-Strings ist die direkte Typkonvertierung mit []byte(s) möglich immer noch eine praktikable Option mit vernachlässigbaren Auswirkungen auf die Leistung.
Fazit
Dieser Artikel zeigt zwei Methoden zum Konvertieren von UTF-8-Zeichenfolgen in []Byte für JSON-Unmarshaling: eine direkte Typumwandlung und Verwendung eines io.Reader mit json.NewDecoder(). Die geeignete Methode hängt vom spezifischen Anwendungsfall und der Datengröße ab.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich UTF-8-Strings in Byte-Arrays für das JSON-Unmarshaling in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!