Maison > développement back-end > Golang > Comment analyser efficacement plusieurs objets JSON dans Go ?

Comment analyser efficacement plusieurs objets JSON dans Go ?

Barbara Streisand
Libérer: 2024-12-22 02:56:12
original
181 Les gens l'ont consulté

How to Efficiently Parse Multiple JSON Objects in Go?

Analyse de plusieurs objets JSON dans Go

L'analyse JSON dans Go est simplifiée à l'aide du package encoding/json. Bien qu'il gère sans effort des tableaux d'objets JSON, le défi se pose lors de l'analyse des réponses JSON avec plusieurs objets, tels que :

{"something":"foo"}
{"something-else":"bar"}
Copier après la connexion

Le code fourni tente de transformer manuellement l'entrée en remplaçant les occurrences }{ par }, {, mais cette approche est inefficace.

Pour résoudre ce problème, une solution plus robuste utilisant un json.Decoder est nécessaire. L'approche consiste à :

  1. Créer un objet json.Decoder à partir de l'entrée.
  2. Itérer sur l'entrée à l'aide de la méthode Decode du décodeur.
  3. Désérialiser chaque JSON objet dans une structure personnalisée (par exemple, Doc).

Voici un exemple d'implémentation :

package main

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

var input = `
{"foo": "bar"}
{"foo": "baz"}
`

type Doc struct {
    Foo string
}

func main() {
    dec := json.NewDecoder(strings.NewReader(input))
    for {
        var doc Doc

        err := dec.Decode(&doc)
        if err == io.EOF {
            // all done
            break
        }
        if err != nil {
            log.Fatal(err)
        }

        fmt.Printf("%+v\n", doc)
    }
}
Copier après la connexion

Cette solution gère avec élégance plusieurs objets JSON dans l'entrée, garantissant leur analyse et leur désérialisation précises.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal