You've already forked json-iterator
mirror of
https://github.com/json-iterator/go.git
synced 2025-06-15 22:50:24 +02:00
#40 support UseNumber
This commit is contained in:
@ -2,9 +2,11 @@ package jsoniter
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"io"
|
||||
"reflect"
|
||||
"errors"
|
||||
"unsafe"
|
||||
"encoding/json"
|
||||
)
|
||||
|
||||
// Unmarshal adapts to json/encoding Unmarshal API
|
||||
@ -147,6 +149,16 @@ func (adapter *AdaptedDecoder) Buffered() io.Reader {
|
||||
return bytes.NewReader(remaining)
|
||||
}
|
||||
|
||||
func (decoder *AdaptedDecoder) UseNumber() {
|
||||
RegisterTypeDecoder("interface {}", func(ptr unsafe.Pointer, iter *Iterator) {
|
||||
if iter.WhatIsNext() == Number {
|
||||
*((*interface{})(ptr)) = json.Number(iter.readNumberAsString())
|
||||
} else {
|
||||
*((*interface{})(ptr)) = iter.Read()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func NewEncoder(writer io.Writer) *AdaptedEncoder {
|
||||
stream := NewStream(writer, 512)
|
||||
return &AdaptedEncoder{stream}
|
||||
|
Reference in New Issue
Block a user