Heim > Artikel > Backend-Entwicklung > Wie konvertiere ich UTF-8-Strings in []Byte für JSON-Unmarshalling in Go?
Unmarshalling von UTF-8-Strings in []Byte
Beim Arbeiten mit JSON erfordert die Unmarshal-Funktion eine Eingabe vom Typ []Byte. Unsere Daten könnten jedoch als UTF-8-String gespeichert werden. In diesem Artikel wird erläutert, wie eine UTF-8-Zeichenfolge für ein erfolgreiches Unmarshalling in []Byte konvertiert wird.
Konvertierung mit []Byte(s)
Gemäß der Go-Spezifikation , eine Zeichenfolge kann mit einem einfachen Casting in []byte konvertiert werden:
<code class="go">s := "some text" b := []byte(s)</code>
Diese Konvertierung erstellt jedoch eine Kopie des String-Inhalt, der bei großen Strings ineffizient sein kann.
Verwendung von io.Reader für effizientes Unmarshalieren
Ein alternativer Ansatz besteht darin, einen aus dem String erstellten io.Reader zu verwenden :
<code class="go">s := `{"somekey":"somevalue"}` reader := strings.NewReader(s) decoder := json.NewDecoder(reader) var result interface{} decoder.Decode(&result)</code>
Diese Methode vermeidet das Kopieren der Zeichenfolge und ist für große Dateien effizienter Eingaben.
Überlegungen für verschiedene Szenarien
Zusammenfassend lässt sich sagen, dass die Konvertierung von UTF-8-Strings in []Byte zum Unmarshalling entweder eine direkte Umwandlung oder die Verwendung eines io.Reader für die effiziente Verarbeitung großer Eingaben erfordert. Die Wahl hängt von den spezifischen Anforderungen der Anwendung ab.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich UTF-8-Strings in []Byte für JSON-Unmarshalling in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!