Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiere ich UTF-8-Strings in []Byte für JSON-Unmarshalling in Go?

Wie konvertiere ich UTF-8-Strings in []Byte für JSON-Unmarshalling in Go?

Barbara Streisand
Barbara StreisandOriginal
2024-11-01 10:08:02667Durchsuche

How to Convert UTF-8 Strings to []byte for 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 := `{&quot;somekey&quot;:&quot;somevalue&quot;}`
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

  • Für kleine JSON-Texte ist die direkte Konvertierung in []Byte mit []Byte(s) akzeptabel.
  • Bei großen JSON-Texten oder bei der Arbeit mit io.Readers ist die Verwendung von strings.NewReader und json.NewDecoder besser Effizienz.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn