mirror of
https://github.com/json-iterator/go.git
synced 2025-01-08 13:06:29 +02:00
57 lines
1006 B
Go
57 lines
1006 B
Go
package jsoniter
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func Test_bind_api_demo(t *testing.T) {
|
|
iter := ParseString(`[0,1,2,3]`)
|
|
val := []int{}
|
|
iter.Read(&val)
|
|
fmt.Println(val[3])
|
|
}
|
|
|
|
func Test_any_api_demo(t *testing.T) {
|
|
iter := ParseString(`[0,1,2,3]`)
|
|
val := iter.ReadAny()
|
|
fmt.Println(val.Get(3))
|
|
}
|
|
|
|
func Test_iterator_api_demo(t *testing.T) {
|
|
iter := ParseString(`[0,1,2,3]`)
|
|
total := 0
|
|
for iter.ReadArray() {
|
|
total += iter.ReadInt()
|
|
}
|
|
fmt.Println(total)
|
|
}
|
|
|
|
type ABC struct {
|
|
a Any
|
|
}
|
|
|
|
func Test_deep_nested_any_api(t *testing.T) {
|
|
iter := ParseString(`{"a": {"b": {"c": "d"}}}`)
|
|
abc := &ABC{}
|
|
iter.Read(&abc)
|
|
fmt.Println(abc.a.Get("b", "c"))
|
|
}
|
|
|
|
type User struct {
|
|
userID int
|
|
name string
|
|
tags []string
|
|
}
|
|
|
|
func Test_iterator_and_bind_api(t *testing.T) {
|
|
iter := ParseString(`[123, {"name": "taowen", "tags": ["crazy", "hacker"]}]`)
|
|
user := User{}
|
|
iter.ReadArray()
|
|
user.userID = iter.ReadInt()
|
|
iter.ReadArray()
|
|
iter.Read(&user)
|
|
iter.ReadArray() // array end
|
|
fmt.Println(user)
|
|
}
|