decoder

package
v1.11.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 26, 2024 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Pretouch

func Pretouch(vt reflect.Type, opts ...option.CompileOption) error

Pretouch compiles vt ahead-of-time to avoid JIT compilation on-the-fly, in order to reduce the first-hit latency.

Opts are the compile options, for example, "option.WithCompileRecursiveDepth" is a compile option to set the depth of recursive compile for the nested struct type.

func Skip

func Skip(data []byte) (start int, end int)

Skip skips only one json value, and returns first non-blank character position and its ending position if it is valid. Otherwise, returns negative error code using start and invalid character position using end

Types

type Decoder

type Decoder struct {
	// contains filtered or unexported fields
}

Decoder is the decoder context object

func NewDecoder

func NewDecoder(s string) *Decoder

NewDecoder creates a new decoder instance.

func (*Decoder) CheckTrailings

func (self *Decoder) CheckTrailings() error

func (*Decoder) CopyString

func (self *Decoder) CopyString()

CopyString indicates the Decoder to decode string values by copying instead of referring.

func (*Decoder) Decode

func (self *Decoder) Decode(val interface{}) error

Decode parses the JSON-encoded data from current position and stores the result in the value pointed to by val.

func (*Decoder) DisallowUnknownFields

func (self *Decoder) DisallowUnknownFields()

DisallowUnknownFields indicates the Decoder to return an error when the destination is a struct and the input contains object keys which do not match any non-ignored, exported fields in the destination.

func (*Decoder) Pos

func (self *Decoder) Pos() int

Pos returns the current decoding position.

func (*Decoder) Reset

func (self *Decoder) Reset(s string)

func (*Decoder) SetOptions

func (self *Decoder) SetOptions(opts Options)

func (*Decoder) UseInt64

func (self *Decoder) UseInt64()

UseInt64 indicates the Decoder to unmarshal an integer into an interface{} as an int64 instead of as a float64.

func (*Decoder) UseNumber

func (self *Decoder) UseNumber()

UseNumber indicates the Decoder to unmarshal a number into an interface{} as a json.Number instead of as a float64.

func (*Decoder) UseUnicodeErrors

func (self *Decoder) UseUnicodeErrors()

UseUnicodeErrors indicates the Decoder to return an error when encounter invalid UTF-8 escape sequences.

func (*Decoder) ValidateString

func (self *Decoder) ValidateString()

ValidateString causes the Decoder to validate string values when decoding string value in JSON. Validation is that, returning error when unescaped control chars(0x00-0x1f) or invalid UTF-8 chars in the string value of JSON.

type MismatchTypeError

type MismatchTypeError struct {
	Pos  int
	Src  string
	Type reflect.Type
}

func (MismatchTypeError) Description

func (self MismatchTypeError) Description() string

func (MismatchTypeError) Error

func (self MismatchTypeError) Error() string

type Options

type Options uint64
const (
	OptionUseInt64         Options = 1 << _F_use_int64
	OptionUseNumber        Options = 1 << _F_use_number
	OptionUseUnicodeErrors Options = 1 << _F_disable_urc
	OptionDisableUnknown   Options = 1 << _F_disable_unknown
	OptionCopyString       Options = 1 << _F_copy_string
	OptionValidateString   Options = 1 << _F_validate_string
)

type StreamDecoder

type StreamDecoder struct {
	Decoder
	// contains filtered or unexported fields
}

StreamDecoder is the decoder context object for streaming input.

func NewStreamDecoder

func NewStreamDecoder(r io.Reader) *StreamDecoder

NewStreamDecoder adapts to encoding/json.NewDecoder API.

NewStreamDecoder returns a new decoder that reads from r.

func (*StreamDecoder) Buffered

func (self *StreamDecoder) Buffered() io.Reader

Buffered returns a reader of the data remaining in the Decoder's buffer. The reader is valid until the next call to Decode.

func (*StreamDecoder) Decode

func (self *StreamDecoder) Decode(val interface{}) (err error)

Decode decodes input stream into val with corresponding data. Redundantly bytes may be read and left in its buffer, and can be used at next call. Either io error from underlying io.Reader (except io.EOF) or syntax error from data will be recorded and stop subsequently decoding.

func (*StreamDecoder) InputOffset

func (self *StreamDecoder) InputOffset() int64

InputOffset returns the input stream byte offset of the current decoder position. The offset gives the location of the end of the most recently returned token and the beginning of the next token.

func (*StreamDecoder) More

func (self *StreamDecoder) More() bool

More reports whether there is another element in the current array or object being parsed.

type SyntaxError

type SyntaxError struct {
	Pos  int
	Src  string
	Code types.ParsingError
	Msg  string
}

func (SyntaxError) Description

func (self SyntaxError) Description() string

func (SyntaxError) Error

func (self SyntaxError) Error() string

func (SyntaxError) Message

func (self SyntaxError) Message() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL