Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menghuraikan Berbilang Objek JSON yang Tidak Terbungkus dalam Go?

Bagaimana untuk Menghuraikan Berbilang Objek JSON yang Tidak Terbungkus dalam Go?

Patricia Arquette
Lepaskan: 2024-12-25 18:23:13
asal
993 orang telah melayarinya

How to Parse Multiple Unwrapped JSON Objects in Go?

Menghuraikan Berbilang Objek JSON yang Tidak Terbungkus dalam Go

Dalam Go, pakej pengekodan/json dengan cekap menghuraikan objek JSON yang disertakan dalam kurungan segi empat sama ([] ). Walau bagaimanapun, menghadapi berbilang objek JSON yang tidak dibalut (cth., {key:value}{key:value}) memberikan cabaran penghuraian.

Untuk menyahkod berbilang objek JSON yang tidak dibalut itu, kami boleh menggunakan json.Decoder yang membaca secara berulang dan menyahkod setiap objek individu. Berikut ialah contoh:

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)
    }
}
Salin selepas log masuk

Dalam contoh ini:

  • Kami mencipta json.Decoder daripada rentetan input.
  • Menggunakan gelung, kami berulang kali mencuba untuk menyahkod objek individu daripada input menggunakan dec.Decode().
  • Jika penyahkodan menemui hujung fail (io.EOF), kami keluar dari gelung kerana tiada lagi objek untuk dinyahkod.
  • Untuk setiap objek yang berjaya dinyahkod, kami menyusunnya menjadi struct Dokumen dan mencetaknya.

Taman permainan: https://play.golang.org/p/ANx8MoMC0yq

Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Berbilang Objek JSON yang Tidak Terbungkus dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan