mirror of
https://github.com/json-iterator/go.git
synced 2024-11-24 08:22:14 +02:00
Use json.Number as the return
This commit is contained in:
parent
7b1fd129cf
commit
be9d4ded4f
@ -1,8 +1,10 @@
|
||||
package jsoniter
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// ValueType the type for JSON element
|
||||
@ -274,7 +276,8 @@ func (iter *Iterator) Read() interface{} {
|
||||
return iter.ReadString()
|
||||
case Number:
|
||||
if iter.cfg.configBeforeFrozen.UseNumber {
|
||||
return iter.ReadInt()
|
||||
num := iter.ReadInt64()
|
||||
return json.Number(strconv.FormatInt(num, 10))
|
||||
}
|
||||
return iter.ReadFloat64()
|
||||
case Nil:
|
||||
|
@ -2,6 +2,7 @@ package jsoniter
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"strconv"
|
||||
"testing"
|
||||
@ -45,9 +46,8 @@ func Test_iterator_use_number(t *testing.T) {
|
||||
t.Run(fmt.Sprintf("%v", input), func(t *testing.T) {
|
||||
should := require.New(t)
|
||||
iter := ParseString(Config{UseNumber: true}.Froze(), input)
|
||||
expected, err := strconv.ParseInt(input, 10, 32)
|
||||
should.Nil(err)
|
||||
should.Equal(int(expected), iter.Read())
|
||||
expected := json.Number(input)
|
||||
should.Equal(expected, iter.Read())
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user