In der Go-Sprache ist das Paket „encoding/json“ eine Standardbibliothek zur Verarbeitung von Daten im JSON-Format (JavaScript Object Notation). In dieser Bibliothek wird ein Encoder-Typ bereitgestellt, der Strukturen oder andere Datentypen in der Go-Sprache in Binärdaten codieren kann, die dem JSON-Format entsprechen. In diesem Artikel wird dieser Typ ausführlich erläutert und spezifische Codebeispiele bereitgestellt.
Werfen wir zunächst einen Blick auf die Definition des Encoder-Typs:
type Encoder struct { w io.Writer err error h *encodeState generic bool }
Wie aus der Definition hervorgeht, ist der Encoder-Typ ein Strukturtyp mit den folgenden vier Feldern:
Encoder-Typ bietet die folgenden Methoden:
NewEncoder-Methode wird zum Erstellen einer Encoder-Typ-Instanz verwendet und muss einen io.Writer übergeben Schnittstellenobjekt als Parameter. Das Folgende ist ein Beispielcode zum Erstellen einer Encoder-Instanz:
package main import ( "encoding/json" "os" ) func main() { type Movie struct { Title string Year int Actors []string } movie := Movie{ Title: "Inception", Year: 2010, Actors: []string{"Leonardo DiCaprio", "Ellen Page", "Tom Hardy"}, } encoder := json.NewEncoder(os.Stdout) encoder.Encode(movie) }
Im obigen Beispielcode erstellen wir eine Strukturinstanz vom Typ „Film“, codieren sie und geben sie auf der Standardausgabe aus.
Die Encode-Methode wird verwendet, um den eingehenden Datentyp (v) JSON zu kodieren und das Kodierungsergebnis in den io.Writer des Encoder-Instanzobjekts zu schreiben. Tritt beim Kodieren ein Fehler auf, wird die entsprechende Fehlermeldung zurückgegeben. Das Folgende ist ein Beispielcode für die Encode-Methode:
package main import ( "encoding/json" "os" ) func main() { type Movie struct { Title string Year int Actors []string } movie := Movie{ Title: "Inception", Year: 2010, Actors: []string{"Leonardo DiCaprio", "Ellen Page", "Tom Hardy"}, } file, _ := os.Create("movie.json") encoder := json.NewEncoder(file) encoder.Encode(movie) file.Close() }
Im obigen Beispielcode erstellen wir eine Strukturinstanz vom Typ „Film“, kodieren sie und schreiben sie in die Datei „movie.json“.
SetIndent-Methode wird verwendet, um das Einrückungsformat der JSON-codierten Ausgabe festzulegen. Sie empfängt zwei Zeichenfolgenparameter, die jeweils „Präfix“ und „Einzug“ darstellen. Das Folgende ist ein Beispielcode für die SetIndent-Methode:
package main import ( "encoding/json" "os" ) func main() { type Movie struct { Title string Year int Actors []string } movie := Movie{ Title: "Inception", Year: 2010, Actors: []string{"Leonardo DiCaprio", "Ellen Page", "Tom Hardy"}, } file, _ := os.Create("movie.json") encoder := json.NewEncoder(file) encoder.SetIndent("", " ") encoder.Encode(movie) file.Close() }
Im obigen Beispielcode verwenden wir die SetIndent-Methode, um das Einrückungspräfix auf leer und die Einrückungszeichenfolge auf vier Leerzeichen zu setzen und dann die codierten Daten im JSON-Format in den Film zu schreiben .json-Datei.
SetEscapeHTML-Methode wird verwendet, um festzulegen, ob das Encoder-Instanzobjekt HTML-Tags maskieren muss. Der Standardwert ist true. Wenn der on-Parameter „true“ ist, wird das HTML-Tag maskiert; wenn der on-Parameter „false“ ist, erfolgt die Ausgabe im ursprünglichen String-Format. Das Folgende ist ein Beispielcode für die SetEscapeHTML-Methode:
package main import ( "encoding/json" "os" ) func main() { type Example struct { Name string HTMLBody string `json:"body"` } example := Example{ Name: "example", HTMLBody: "<h1>This is a heading</h1> <p>This is a paragraph.</p>", } file, _ := os.Create("example.json") encoder := json.NewEncoder(file) encoder.SetEscapeHTML(false) encoder.Encode(example) file.Close() }
Im obigen Beispielcode verwenden wir die SetEscapeHTML-Methode, um das HTML-Tag im ursprünglichen Zeichenfolgenformat auszugeben.
Der Encoder-Typ ist ein Kerntyp, der für die JSON-Codierung im Paket „coding/json“ in der Sprache Go verwendet wird. Sein Implementierungsprinzip besteht darin, Strukturen oder andere Datentypen in Binärdaten zu konvertieren konform zum JSON-Format und geben Sie es an den angegebenen io.Writer aus. Wenn wir den Encoder-Typ verwenden, können wir Codierungsparameter festlegen, JSON-Codierung und andere Vorgänge durchführen, indem wir seine öffentlichen Methoden aufrufen.
Das obige ist der detaillierte Inhalt vonInterpretation von Go-Sprachdokumenten: Detaillierte Erläuterung des Typs „encoding/json.Encoder'.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!