You've already forked json-iterator
							
							
				mirror of
				https://github.com/json-iterator/go.git
				synced 2025-10-31 00:07:40 +02:00 
			
		
		
		
	Use json.Number as the return
This commit is contained in:
		| @@ -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()) | ||||
| 		}) | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user