在Go中解析多個JSON物件
使用encoding/json套件簡化了Go中的JSON解析。雖然它可以輕鬆處理JSON 物件數組,但在解析具有多個物件的JSON 回應時會出現挑戰,例如:
{"something":"foo"} {"something-else":"bar"}
提供的程式碼嘗試透過將出現的}{ 替換為} 來手動轉換輸入, {,但這種方法無效。
要解決此問題,需要使用 json.Decoder 的更強大的解決方案。此方法涉及:
這是一個範例實作:
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中文網其他相關文章!