1
0
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:
carlcarl 2017-07-12 00:11:50 +08:00
parent 7b1fd129cf
commit be9d4ded4f
2 changed files with 7 additions and 4 deletions

View File

@ -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:

View File

@ -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())
})
}
}