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

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

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

How to Parse Multiple Unwrapped JSON Objects in Go?

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

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

要解码此类多个未包装的 JSON 对象,我们可以使用 json.Decoder 来迭代读取并解码每个单独的对象。这是一个示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

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

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