首頁 >後端開發 >Golang >如何在Go中高效解析多個JSON物件?

如何在Go中高效解析多個JSON物件?

Barbara Streisand
Barbara Streisand原創
2024-12-22 02:56:12185瀏覽

How to Efficiently Parse Multiple JSON Objects in Go?

在Go中解析多個JSON物件

使用encoding/json套件簡化了Go中的JSON解析。雖然它可以輕鬆處理JSON 物件數組,但在解析具有多個物件的JSON 回應時會出現挑戰,例如:

{"something":"foo"}
{"something-else":"bar"}

提供的程式碼嘗試透過將出現的}{ 替換為} 來手動轉換輸入, {,但這種方法無效。

要解決此問題,需要使用 json.Decoder 的更強大的解決方案。此方法涉及:

  1. 從輸入建立 json.Decoder 物件。
  2. 使用解碼器的 Decode 方法迭代輸入。
  3. 反序列化每個 JSON物件到自訂結構中(例如, Doc)。

這是一個範例實作:

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

此解決方案可以優雅地處理輸入中的多個 JSON 對象,確保它們準確的解析和反序列化。

以上是如何在Go中高效解析多個JSON物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn