„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 08.11.2024
Durchsuche:194

How to Convert UTF-8 Strings to []byte for JSON Unmarshalling in Go?

Unmarshalling von UTF-8-Strings in []Byte

Bei der Arbeit 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 umgewandelt werden:

s := "some text"
b := []byte(s)

Diese Konvertierung erstellt jedoch eine Kopie des Inhalts der Zeichenfolge, was bei großen Zeichenfolgen ineffizient sein kann.

Verwenden von io.Reader für Effiziente Unmarshal

Ein alternativer Ansatz besteht darin, einen io.Reader zu verwenden, der aus der Zeichenfolge erstellt wurde:

s := `{"somekey":"somevalue"}`
reader := strings.NewReader(s)
decoder := json.NewDecoder(reader)
var result interface{}
decoder.Decode(&result)

Diese Methode vermeidet das Kopieren der Zeichenfolge und ist effizienter für große Eingaben.

Überlegungen für verschiedene Szenarien

  • Für kleine JSON-Texte ist die direkte Konvertierung in []Byte mit []Byte(s) akzeptabel.
  • Für große JSON-Texte 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.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3