当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


GO Decoder.Token用法及代码示例

GO语言"encoding/json"包中"Decoder.Token"类型的用法及代码示例。

用法:

func(dec *Decoder) Token()(Token, error)

令牌返回输入流中的下一个 JSON 令牌。在输入流结束时,Token 返回 nil,io.EOF。

Token 保证它返回的分隔符 [ ] { } 正确嵌套和匹配:如果 Token 在输入中遇到意外的分隔符,它将返回错误。

输入流由基本的 JSON 值(bool、string、number 和 null)以及 Delim 类型的分隔符 [ ] { } 组成,用于标记数组和对象的开始和结束。省略了逗号和冒号。

例子:

此示例使用解码器来解码不同 JSON 值的流。

package main

import (
    "encoding/json"
    "fmt"
    "io"
    "log"
    "strings"
)

func main() {
    const jsonStream = `
    {"Message": "Hello", "Array": [1, 2, 3], "Null": null, "Number": 1.234}
`
    dec := json.NewDecoder(strings.NewReader(jsonStream))
    for {
        t, err := dec.Token()
        if err == io.EOF {
            break
        }
        if err != nil {
            log.Fatal(err)
        }
        fmt.Printf("%T: %v", t, t)
        if dec.More() {
            fmt.Printf(" (more)")
        }
        fmt.Printf("\n")
    }
}

输出:

json.Delim: { (more)
string: Message (more)
string: Hello (more)
string: Array (more)
json.Delim: [ (more)
float64: 1 (more)
float64: 2 (more)
float64: 3
json.Delim: ] (more)
string: Null (more)
<nil>: <nil> (more)
string: Number (more)
float64: 1.234
json.Delim: }

相关用法


注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Decoder.Token。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。