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

Comment analyser plusieurs objets JSON non emballés dans Go ?

Patricia Arquette
Libérer: 2024-12-25 18:23:13
original
993 Les gens l'ont consulté

How to Parse Multiple Unwrapped JSON Objects in Go?

Analyse de plusieurs objets JSON non emballés dans Go

Dans Go, le package encoding/json analyse efficacement les objets JSON placés entre crochets ([] ). Cependant, rencontrer plusieurs objets JSON non emballés (par exemple, {key:value}{key:value}) présente un défi d'analyse.

Pour décoder ces multiples objets JSON non enveloppés, nous pouvons utiliser un json.Decoder qui lit de manière itérative et décode chaque objet individuel. Voici un exemple :

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

Dans cet exemple :

  • Nous créons un json.Decoder à partir de la chaîne d'entrée.
  • À l'aide d'une boucle, nous essayons à plusieurs reprises pour décoder des objets individuels de l'entrée en utilisant dec.Decode().
  • Si le décodage rencontre une fin de fichier (io.EOF), nous quittons la boucle car il n'y a plus d'objets à décoder.
  • Pour chaque objet décodé avec succès, nous le marshalons dans une structure Doc et l'imprimons.

Aire de jeux : https://play.golang.org/p/ANx8MoMC0yq

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 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