Maison  >  Article  >  développement back-end  >  Utilisez les fonctions json.NewDecoder et json.NewEncoder dans Golang pour implémenter l'encodage et le décodage en streaming de JSON

Utilisez les fonctions json.NewDecoder et json.NewEncoder dans Golang pour implémenter l'encodage et le décodage en streaming de JSON

WBOY
WBOYoriginal
2023-11-17 11:14:201348parcourir

Utilisez les fonctions json.NewDecoder et json.NewEncoder dans Golang pour implémenter lencodage et le décodage en streaming de JSON

Utilisez les fonctions json.NewDecoder et json.NewEncoder dans Golang pour implémenter l'encodage et le décodage en streaming de JSON

JSON est un format d'échange de données léger qui est largement utilisé dans les applications Web car il est facile à lire et à écrire. Programmes et modernes Apis. En Golang, nous pouvons utiliser le package json pour encoder et décoder les données JSON. Les fonctions json.NewDecoder et json.NewEncoder fournissent un moyen de traiter en continu les données JSON.

Avantages de l'encodage et du décodage en streaming de données JSON

Le principal avantage de l'encodage et du décodage en streaming de données JSON est qu'ils peuvent traiter les données JSON étape par étape sans attendre que l'intégralité du fichier ou du flux de données soit entièrement lu, ce qui rend le traitement très Les données ou fichiers volumineux en streaming JSON deviennent plus efficaces et plus faciles.

Implémentation du décodage en streaming de données JSON

Dans Golang, la fonction json.NewDecoder peut être utilisée pour décoder les données JSON en une valeur d'interface à utiliser dans un traitement ultérieur. Voici un exemple de code simple :

package main

import (
    "encoding/json"
    "fmt"
    "strings"
)

func main() {

    // 定义一个JSON字符串
    jsonString := `{"name":"Jack", "age":28, "gender":"Male", "hobbies":["reading", "running", "traveling"]}`

    // 使用NewDecoder函数创建一个解码器
    decoder := json.NewDecoder(strings.NewReader(jsonString))

    // 逐步解码JSON数据
    var data map[string]interface{}
    for decoder.More() {
        if err := decoder.Decode(&data); err != nil {
            panic(err)
        }
        fmt.Println(data)
    }
}

Dans le code ci-dessus, nous définissons d'abord une chaîne JSON. Ensuite, utilisez la fonction strings.NewReader pour la convertir en interface io.Reader. Nous utilisons ensuite la fonction json.NewDecoder pour créer un décodeur capable de décoder progressivement les données JSON en valeurs de type map[string]interface{}. Enfin, nous utilisons le décodage étape par étape pour décoder les données JSON en données variables, puis les imprimer. En décodant étape par étape, nous pouvons traiter efficacement des flux de données ou des fichiers JSON volumineux sans avoir à attendre que l'intégralité du fichier ou du flux de données soit entièrement lue.

Implémentation de l'encodage de streaming de données JSON

Semblable au décodage de streaming de données JSON, dans Golang, nous pouvons utiliser la fonction json.NewEncoder pour encoder les données JSON dans un flux de caractères. Cette méthode de sortie en streaming nous permet d'envoyer ou de sauvegarder des données JSON en morceaux à la demande. Ce qui suit est un exemple de code simple d'encodage de streaming de données Golang JSON :

package main

import (
    "encoding/json"
    "fmt"
    "os"
)

func main() {

    // 创建一个json编码器
    encoder := json.NewEncoder(os.Stdout)

    // 创建需要编码的数据结构
    data := struct {
        Name    string   `json:"name"`
        Age     int      `json:"age"`
        Gender  string   `json:"gender"`
        Hobbies []string `json:"hobbies"`
    }{
        Name:    "Jack",
        Age:     28,
        Gender:  "Male",
        Hobbies: []string{"reading", "running", "traveling"},
    }

    // 将数据结构编码为JSON流并输出到控制台
    if err := encoder.Encode(&data); err != nil {
        panic(err)
    }
}

Dans le code ci-dessus, nous créons d'abord un encodeur à l'aide de la fonction json.NewEncoder et le connectons à os.Stdout afin que nos données JSON soient envoyées à la console. . Ensuite, nous créons la structure de données qui doit être encodée et utilisons un encodeur pour l'encoder dans un flux JSON. Enfin, nous utilisons la fonction Encode pour encoder la structure de données dans un flux JSON et la transmettre à la console.

Résumé

Le streaming de données JSON est un moyen efficace de traiter de gros flux de données ou fichiers JSON. En utilisant les fonctions json.NewDecoder et json.NewEncoder, nous pouvons traiter et envoyer des morceaux de données JSON à la demande. Lors de l'encodage et du décodage en streaming, nous n'avons pas besoin d'attendre que l'intégralité du fichier ou du flux de données soit complètement lu, ce qui rend le traitement JSON plus efficace et plus flexible.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn