首页 > 后端开发 > Golang > 如何在Go中高效解析多个JSON对象?

如何在Go中高效解析多个JSON对象?

Barbara Streisand
发布: 2024-12-22 02:56:12
原创
180 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板