1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- package jsoniter
- import (
- "encoding/json"
- "fmt"
- "github.com/json-iterator/go/require"
- "testing"
- )
- func Test_bind_api_demo(t *testing.T) {
- should := require.New(t)
- val := []int{}
- err := UnmarshalFromString(`[0,1,2,3] `, &val)
- should.Nil(err)
- should.Equal([]int{0, 1, 2, 3}, val)
- }
- 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 People struct {
- Name string
- Gender string
- Age int
- Address string
- Mobile string
- Country string
- Height int
- }
- func jsoniterMarshal(p *People) error {
- _, err := Marshal(p)
- if nil != err {
- return err
- }
- return nil
- }
- func stdMarshal(p *People) error {
- _, err := json.Marshal(p)
- if nil != err {
- return err
- }
- return nil
- }
- func BenchmarkJosniterMarshal(b *testing.B) {
- var p People
- p.Address = "上海市徐汇区漕宝路"
- p.Age = 30
- p.Country = "中国"
- p.Gender = "male"
- p.Height = 170
- p.Mobile = "18502120533"
- p.Name = "Elvin"
- b.ReportAllocs()
- for i := 0; i < b.N; i++ {
- err := jsoniterMarshal(&p)
- if nil != err {
- b.Error(err)
- }
- }
- }
- func BenchmarkStdMarshal(b *testing.B) {
- var p People
- p.Address = "上海市徐汇区漕宝路"
- p.Age = 30
- p.Country = "中国"
- p.Gender = "male"
- p.Height = 170
- p.Mobile = "18502120533"
- p.Name = "Elvin"
- b.ReportAllocs()
- for i := 0; i < b.N; i++ {
- err := stdMarshal(&p)
- if nil != err {
- b.Error(err)
- }
- }
- }
|