Heim >Backend-Entwicklung >Golang >Wie kann ich Zeichen in JSON codieren, ohne dass ASCII in Go maskiert wird?

Wie kann ich Zeichen in JSON codieren, ohne dass ASCII in Go maskiert wird?

Susan Sarandon
Susan SarandonOriginal
2024-11-29 15:29:10180Durchsuche

How Can I Encode Characters in JSON Without ASCII Escaping in Go?

Zeichen in JSON ohne ASCII-Escapezeichen kodieren

In diesem Fall besteht das Ziel darin, ein Zeichen in JSON ohne ASCII-Escapezeichen anzuzeigen. Bei Verwendung von Go1.7 bietet die Option Encoder.DisableHTMLEscaping eine Lösung.

Escape in JSON

Typischerweise werden Zeichen wie <, > und & in JSON mit Sequenzen wie u003C maskiert. Wenn diese Zeichen jedoch in ihrer ursprünglichen Form angezeigt werden sollen, muss die Escape-Funktion deaktiviert werden.

Die SetEscapeHTML-Methode

Go1.7 hat die SetEscapeHTML-Methode eingeführt, die einen booleschen Parameter akzeptiert. Wenn auf „false“ gesetzt, ist HTML-Escape für den Encoder deaktiviert.

Implementierungsbeispiel

Der folgende Code zeigt, wie die SetEscapeHTML-Methode verwendet wird, um HTML-Escape zu deaktivieren:

import "encoding/json"

func main() {
    enc := json.NewEncoder(os.Stdout)
    enc.SetEscapeHTML(false)

    // Encode a map with an '&' character
    err := enc.Encode(map[string]string{
        "key": "&",
    })
    if err != nil {
        panic(err)
    }
}

Durch Deaktivieren der HTML-Escape-Funktion bleibt das Zeichen „&“ in der JSON-Ausgabe erhalten und erzielt das gewünschte Ergebnis.

Das obige ist der detaillierte Inhalt vonWie kann ich Zeichen in JSON codieren, ohne dass ASCII in Go maskiert wird?. 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