Heim > Backend-Entwicklung > Golang > Wie analysiere ich mehrere nicht verpackte JSON-Objekte in Go?

Wie analysiere ich mehrere nicht verpackte JSON-Objekte in Go?

Patricia Arquette
Freigeben: 2024-12-25 18:23:13
Original
901 Leute haben es durchsucht

How to Parse Multiple Unwrapped JSON Objects in Go?

Parsen mehrerer entpackter JSON-Objekte in Go

In Go analysiert das Paket „encoding/json“ effizient JSON-Objekte, die in eckigen Klammern eingeschlossen sind ([] ). Das Auffinden mehrerer nicht verpackter JSON-Objekte (z. B. {key:value}{key:value}) stellt jedoch eine Herausforderung beim Parsen dar.

Um solche mehreren nicht verpackten JSON-Objekte zu dekodieren, können wir einen json.Decoder verwenden, der iterativ liest und dekodiert jedes einzelne Objekt. Hier ist ein Beispiel:

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)
    }
}
Nach dem Login kopieren

In diesem Beispiel:

  • Wir erstellen einen json.Decoder aus der Eingabezeichenfolge.
  • Mit einer Schleife versuchen wir es wiederholt um einzelne Objekte aus der Eingabe mit dec.Decode() zu dekodieren.
  • Wenn die Dekodierung auf das Dateiende stößt (io.EOF), wir verlassen die Schleife, da keine Objekte mehr zum Dekodieren vorhanden sind.
  • Für jedes erfolgreich dekodierte Objekt ordnen wir es in eine Doc-Struktur ein und drucken es aus.

Spielplatz: https://play.golang.org/p/ANx8MoMC0yq

Das obige ist der detaillierte Inhalt vonWie analysiere ich mehrere nicht verpackte JSON-Objekte in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage