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

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