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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。