Maison > développement back-end > Golang > le corps du texte

Comment lire les données JSON de io.Reader en utilisant bufio dans Golang ?

WBOY
Libérer: 2024-06-03 15:48:02
original
888 Les gens l'ont consulté

Comment lire les données JSON de io.Reader en utilisant bufio dans Go ? Utilisez bufio.NewReader pour créer un io.Reader tamponné. Utilisez bufio.ReadBytes pour lire JSON jusqu'à ce qu'un délimiteur (généralement un caractère de nouvelle ligne) soit rencontré. Utilisez le package encoding/json pour analyser les données JSON.

如何在 Golang 中使用 bufio 从 io.Reader 中读取 JSON 数据?

Comment lire les données JSON à partir de io.Reader à l'aide de bufio dans Golang

La lecture des données JSON est une tâche courante dans Golang. Pour lire JSON depuis io.Reader, vous pouvez utiliser le package bufio. Il s'agit d'un didacticiel simple montrant comment utiliser bufio pour lire les données JSON à partir de io.Reader. io.Reader 中读取 JSON,你可以使用 bufio 包。这是一个简单的教程,演示如何使用 bufioio.Reader 中读取 JSON 数据。

安装 bufio 包

import "bufio"
Copier après la connexion

创建 io.Reader
要从 io.Reader 中读取 JSON,你需要首先创建一个 io.Reader。你可以使用 os.Stdin 来使用标准输入或创建一个文件来从文件中读取。

使用 bufio.NewReader 创建带缓冲的 io.Reader
bufio 包提供了 NewReader 函数,它可以创建一个带缓冲的 io.Reader。这可以提高对小文件或网络连接的读取性能。

reader := bufio.NewReader(in)
Copier après la connexion

使用 bufio.ReadBytes 读取 JSON
bufio 包提供了一个名为 ReadBytes 的函数,它可以从 io.Reader 中读取直到遇到分隔符。对于 JSON 数据,分隔符通常是换行符 ('n')。

line, err := reader.ReadBytes('\n')
if err != nil {
    // 处理错误
}
Copier après la connexion

解析 JSON
读取 JSON 行后,你可以使用 encoding/json 包来解析 JSON 数据。

var data map[string]interface{}
err = json.Unmarshal(line, &data)
if err != nil {
    // 处理错误
}
Copier après la connexion

实战案例
以下是一个如何使用 bufioio.Reader

🎜Installer le package bufio🎜🎜
import (
    "bufio"
    "encoding/json"
    "fmt"
    "os"
)

func main() {
    // 使用标准输入创建 io.Reader
    reader := bufio.NewReader(os.Stdin)

    // 读取 JSON 数据直到遇到换行符
    line, err := reader.ReadBytes('\n')
    if err != nil {
        fmt.Println("Error reading JSON:", err)
        os.Exit(1)
    }

    // 解析 JSON 数据
    var data map[string]interface{}
    err = json.Unmarshal(line, &data)
    if err != nil {
        fmt.Println("Error parsing JSON:", err)
        os.Exit(1)
    }

    // 打印数据
    fmt.Println(data)
}
Copier après la connexion
🎜🎜Créer io.Reader🎜
Pour lire JSON à partir de io.Reader, vous devez d'abord créer un io.Reader . Vous pouvez utiliser os.Stdin pour utiliser l'entrée standard ou créer un fichier à partir duquel lire. 🎜🎜🎜Utilisez bufio.NewReader pour créer un io.Reader tamponné🎜Le package
bufio fournit la fonction NewReader, qui peut créer un io .Reader tamponné . Cela peut améliorer les performances de lecture sur les petits fichiers ou les connexions réseau. 🎜rrreee🎜🎜Lire JSON à l'aide de bufio.ReadBytes🎜Le package
bufio fournit une fonction nommée ReadBytes, qui peut être lue à partir de io.Reader jusqu'à ce qu'un délimiteur soit rencontré. Pour les données JSON, le délimiteur est généralement le caractère de nouvelle ligne (« n »). 🎜rrreee🎜🎜Parsing JSON🎜<br>Après avoir lu les lignes JSON, vous pouvez utiliser le package <code>encoding/json pour analyser les données JSON. 🎜rrreee🎜🎜Cas pratique🎜
Ce qui suit est un exemple complet de la façon d'utiliser bufio pour lire les données JSON à partir de io.Reader. 🎜rrreee

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!