Heim  >  Artikel  >  Backend-Entwicklung  >  Wie dekodiere ich []Byte als Strings in Go JSON?

Wie dekodiere ich []Byte als Strings in Go JSON?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-05 22:53:02530Durchsuche

How to Decode []byte as Strings in Go JSON?

Dekodierung von []Byte als Strings in Go

In Go wurde die Konvertierung durchgeführt, wenn ein []Byte-Slice als JSON-String gemarshallt wurde Die Methode json.Marshal() kodiert das Byte-Slice als Base64-kodierte Zeichenfolge. Wie in der Dokumentation zu sehen ist:

Array and slice values encode as JSON arrays, except that []byte encodes as a base64-encoded string, and a nil slice encodes as the null JSON object.

Diese Konvertierung wird durchgeführt, um das Fehlen einer nativen Darstellung für Rohbytes in JSON auszugleichen. Die Base64-Kodierung stellt sicher, dass das Byte-Slice als gültige JSON-Zeichenfolge transportiert wird.

Überwindung der Kodierung

Um eine JSON-Zeichenfolge mit dem ursprünglichen Inhalt eines [] zu generieren Im Byte-Feld müssen die Daten vor dem Marshalling in eine Zeichenfolge konvertiert werden. Dies kann mit der Funktion string() erreicht werden:

<code class="go">    helloStr := "Hello"
    helloSlc := []byte(helloStr)

    obj := Msg{string(helloSlc)}
    json, _ := json.Marshal(obj)
    fmt.Println(string(json))</code>

Dadurch wird die gewünschte Ausgabe erzeugt:

{"Content":"Hello"}

Dieser Ansatz stellt sicher, dass der JSON-String den ursprünglichen Inhalt des Strings enthält , statt seiner base64-codierten Darstellung.

Das obige ist der detaillierte Inhalt vonWie dekodiere ich []Byte als Strings in Go JSON?. 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