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

Comment puis-je analyser efficacement plusieurs objets JSON consécutifs dans Go ?

DDD
Libérer: 2024-12-23 05:08:14
original
387 Les gens l'ont consulté

How Can I Efficiently Parse Multiple Consecutive JSON Objects in Go?

Analyse de plusieurs objets JSON dans Go

Lorsque vous rencontrez plusieurs objets JSON, tels que ceux renvoyés par les serveurs au format :

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

l'analyse peut s'avérer difficile. L'extrait de code suivant montre les difficultés rencontrées lors de l'utilisation de chaînes. Remplacer :

correct_format := strings.Replace(string(resp_body), "}{", "},{", -1)
json_output := "[" + correct_format + "]"
Copier après la connexion

Une solution alternative consiste à utiliser un json.Decoder pour un décodage efficace :

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 approche garantit une analyse réussie. de plusieurs objets JSON, même dans des scénarios tels que les données Common Crawl.

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