首页 > 后端开发 > Golang > 如何在 Go 中解析多个未包装的 JSON 对象?

如何在 Go 中解析多个未包装的 JSON 对象?

Patricia Arquette
发布: 2024-12-25 18:23:13
原创
901 人浏览过

How to Parse Multiple Unwrapped JSON Objects in Go?

在 Go 中解析多个未包装的 JSON 对象

在 Go 中,encoding/json 包可以有效解析方括号 ([] 内的 JSON 对象) )。然而,遇到多个未包装的 JSON 对象(例如,{key:value}{key:value})会带来解析挑战。

要解码此类多个未包装的 JSON 对象,我们可以使用 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.Decoder。
  • 使用循环,我们反复尝试使用 dec.Decode() 从输入中解码单个对象。
  • 如果解码遇到文件结束 (io.EOF),我们退出循环,因为没有更多对象要解码。
  • 对于每个成功解码的对象,我们将其编组到 Doc 结构中并打印它。

游乐场:https://play.golang.org/p/ANx8MoMC0yq

以上是如何在 Go 中解析多个未包装的 JSON 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

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