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

Barbara Streisand
Freigeben: 2024-11-01 10:08:02
Original
683 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!