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

如何在Go中高效率解析多個連續的JSON物件?

DDD
發布: 2024-12-23 05:08:14
原創
387 人瀏覽過

How Can I Efficiently Parse Multiple Consecutive JSON Objects in Go?

在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板