在Go 中解析多個JSON 物件
當遇到多個JSON 物件時,例如從伺服器傳回的格式為:
{"something":"foo"} {"something-else":"bar"}
解析可能具有挑戰性。下面的程式碼片段示範了使用strings.Replace 時遇到的困難:
correct_format := strings.Replace(string(resp_body), "}{", "},{", -1) json_output := "[" + correct_format + "]"
另一個解決方案是利用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 對象,即使在Common Crawl 資料等場景中也是如此。
以上是如何在Go中高效率解析多個連續的JSON物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!