Dans le langage Go, le package encoding/json est une bibliothèque standard de traitement des données au format JSON (JavaScript Object Notation). Dans cette bibliothèque, un type Encoder est fourni, qui peut encoder des structures ou d'autres types de données dans le langage Go en données binaires conformes au format JSON. Cet article expliquera ce type en détail et fournira des exemples de code spécifiques.
Jetons d'abord un coup d'œil à la définition du type Encoder :
type Encoder struct { w io.Writer err error h *encodeState generic bool }
Comme le montre la définition, le type Encoder est un type struct avec les quatre champs suivants :
Le type Encoder fournit les méthodes suivantes :
La méthode NewEncoder est utilisée pour créer une instance de type Encoder et doit passer dans un io.Writer objet d'interface comme paramètres. Voici un exemple de code pour créer une instance Encoder :
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) }
Dans l'exemple de code ci-dessus, nous créons une instance de structure de type Movie, l'encodons et la sortons sur la sortie standard.
La méthode Encode est utilisée pour encoder JSON le type de données entrant (v) et écrire le résultat de l'encodage dans le io.Writer de l'objet d'instance Encoder. Si une erreur se produit lors de l'encodage, le message d'erreur correspondant sera renvoyé. Voici un exemple de code pour la méthode Encode :
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() }
Dans l'exemple de code ci-dessus, nous créons une instance de structure de type Movie, l'encodons et l'écrivons dans le fichier movie.json.
La méthode SetIndent est utilisée pour définir le format d'indentation de la sortie codée JSON. Elle reçoit deux paramètres de chaîne, représentant respectivement "préfixe" et "indent". Voici un exemple de code pour la méthode SetIndent :
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() }
Dans l'exemple de code ci-dessus, nous utilisons la méthode SetIndent pour définir le préfixe d'indentation sur vide, la chaîne d'indentation sur quatre espaces, puis écrivons les données codées au format JSON dans le film. Fichier .json.
La méthode SetEscapeHTML est utilisée pour définir si l'objet d'instance Encoder doit échapper aux balises HTML. Si le paramètre on est vrai, la balise HTML sera échappée ; si le paramètre on est faux, la sortie sera au format de chaîne d'origine. Voici un exemple de code pour la méthode SetEscapeHTML :
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() }
Dans l'exemple de code ci-dessus, nous utilisons la méthode SetEscapeHTML pour générer la balise HTML dans le format de chaîne d'origine.
Le type Encoder est un type de base utilisé pour l'encodage JSON dans le package encoding/json du langage Go. Il fournit le traitement d'encodage des données au format JSON. Son principe de mise en œuvre consiste à convertir des structures ou à convertir d'autres types de données en données binaires. conforme au format JSON et affichez-le sur le io.Writer spécifié. Lors de l'utilisation du type Encoder, nous pouvons définir les paramètres d'encodage, effectuer l'encodage JSON et d'autres opérations en appelant ses méthodes publiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!