mirror of
https://github.com/json-iterator/go.git
synced 2025-01-20 18:48:32 +02:00
rename AdaptedDecoder => Decoder and AdaptedEncoder => Encoder
This commit is contained in:
parent
b3170a8cef
commit
aa01f57b7f
@ -59,19 +59,19 @@ func MarshalToString(v interface{}) (string, error) {
|
||||
//
|
||||
// NewDecoder returns a new decoder that reads from r.
|
||||
//
|
||||
// Instead of a json/encoding Decoder, an AdaptedDecoder is returned
|
||||
// Instead of a json/encoding Decoder, an Decoder is returned
|
||||
// Refer to https://godoc.org/encoding/json#NewDecoder for more information
|
||||
func NewDecoder(reader io.Reader) *AdaptedDecoder {
|
||||
func NewDecoder(reader io.Reader) *Decoder {
|
||||
return ConfigDefault.NewDecoder(reader)
|
||||
}
|
||||
|
||||
// AdaptedDecoder reads and decodes JSON values from an input stream.
|
||||
// AdaptedDecoder provides identical APIs with json/stream Decoder (Token() and UseNumber() are in progress)
|
||||
type AdaptedDecoder struct {
|
||||
// Decoder reads and decodes JSON values from an input stream.
|
||||
// Decoder provides identical APIs with json/stream Decoder (Token() and UseNumber() are in progress)
|
||||
type Decoder struct {
|
||||
iter *Iterator
|
||||
}
|
||||
|
||||
func (adapter *AdaptedDecoder) Decode(obj interface{}) error {
|
||||
func (adapter *Decoder) Decode(obj interface{}) error {
|
||||
adapter.iter.ReadVal(obj)
|
||||
err := adapter.iter.Error
|
||||
if err == io.EOF {
|
||||
@ -80,40 +80,40 @@ func (adapter *AdaptedDecoder) Decode(obj interface{}) error {
|
||||
return adapter.iter.Error
|
||||
}
|
||||
|
||||
func (adapter *AdaptedDecoder) More() bool {
|
||||
func (adapter *Decoder) More() bool {
|
||||
return adapter.iter.head != adapter.iter.tail
|
||||
}
|
||||
|
||||
func (adapter *AdaptedDecoder) Buffered() io.Reader {
|
||||
func (adapter *Decoder) Buffered() io.Reader {
|
||||
remaining := adapter.iter.buf[adapter.iter.head:adapter.iter.tail]
|
||||
return bytes.NewReader(remaining)
|
||||
}
|
||||
|
||||
func (decoder *AdaptedDecoder) UseNumber() {
|
||||
func (decoder *Decoder) UseNumber() {
|
||||
origCfg := decoder.iter.cfg.configBeforeFrozen
|
||||
origCfg.UseNumber = true
|
||||
decoder.iter.cfg = origCfg.Froze()
|
||||
}
|
||||
|
||||
func NewEncoder(writer io.Writer) *AdaptedEncoder {
|
||||
func NewEncoder(writer io.Writer) *Encoder {
|
||||
return ConfigDefault.NewEncoder(writer)
|
||||
}
|
||||
|
||||
type AdaptedEncoder struct {
|
||||
type Encoder struct {
|
||||
stream *Stream
|
||||
}
|
||||
|
||||
func (adapter *AdaptedEncoder) Encode(val interface{}) error {
|
||||
func (adapter *Encoder) Encode(val interface{}) error {
|
||||
adapter.stream.WriteVal(val)
|
||||
adapter.stream.Flush()
|
||||
return adapter.stream.Error
|
||||
}
|
||||
|
||||
func (adapter *AdaptedEncoder) SetIndent(prefix, indent string) {
|
||||
func (adapter *Encoder) SetIndent(prefix, indent string) {
|
||||
adapter.stream.cfg.indentionStep = len(indent)
|
||||
}
|
||||
|
||||
func (adapter *AdaptedEncoder) SetEscapeHTML(escapeHtml bool) {
|
||||
func (adapter *Encoder) SetEscapeHTML(escapeHtml bool) {
|
||||
config := adapter.stream.cfg.configBeforeFrozen
|
||||
config.EscapeHtml = escapeHtml
|
||||
adapter.stream.cfg = config.Froze()
|
||||
|
@ -35,8 +35,8 @@ type Api interface {
|
||||
UnmarshalFromString(str string, v interface{}) error
|
||||
Unmarshal(data []byte, v interface{}) error
|
||||
Get(data []byte, path ...interface{}) Any
|
||||
NewEncoder(writer io.Writer) *AdaptedEncoder
|
||||
NewDecoder(reader io.Reader) *AdaptedDecoder
|
||||
NewEncoder(writer io.Writer) *Encoder
|
||||
NewDecoder(reader io.Reader) *Decoder
|
||||
}
|
||||
|
||||
var ConfigDefault = Config{
|
||||
@ -281,12 +281,12 @@ func (cfg *frozenConfig) Unmarshal(data []byte, v interface{}) error {
|
||||
return iter.Error
|
||||
}
|
||||
|
||||
func (cfg *frozenConfig) NewEncoder(writer io.Writer) *AdaptedEncoder {
|
||||
func (cfg *frozenConfig) NewEncoder(writer io.Writer) *Encoder {
|
||||
stream := NewStream(cfg, writer, 512)
|
||||
return &AdaptedEncoder{stream}
|
||||
return &Encoder{stream}
|
||||
}
|
||||
|
||||
func (cfg *frozenConfig) NewDecoder(reader io.Reader) *AdaptedDecoder {
|
||||
func (cfg *frozenConfig) NewDecoder(reader io.Reader) *Decoder {
|
||||
iter := Parse(cfg, reader, 512)
|
||||
return &AdaptedDecoder{iter}
|
||||
return &Decoder{iter}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user