Documentation ¶
Index ¶
- Variables
- func AppendString(buf *[]byte, str string)
- func WriteStringSlowPath(buf *[]byte, i int, s string)
- type API
- type Config
- type Iterator
- func (iter *Iterator) CurrentBuffer() string
- func (iter *Iterator) Pool() IteratorPool
- func (iter *Iterator) ReadArray() (ret bool)
- func (iter *Iterator) ReadArrayCB(callback func(*Iterator) bool) (ret bool)
- func (iter *Iterator) ReadBigFloat() (ret *big.Float)
- func (iter *Iterator) ReadBigInt() (ret *big.Int)
- func (iter *Iterator) ReadBool() (ret bool)
- func (iter *Iterator) ReadFloat32() (ret float32)
- func (iter *Iterator) ReadFloat64() (ret float64)
- func (iter *Iterator) ReadInt() int
- func (iter *Iterator) ReadInt16() (ret int16)
- func (iter *Iterator) ReadInt32() (ret int32)
- func (iter *Iterator) ReadInt64() (ret int64)
- func (iter *Iterator) ReadInt8() (ret int8)
- func (iter *Iterator) ReadMapCB(callback func(*Iterator, string) bool) bool
- func (iter *Iterator) ReadNil() (ret bool)
- func (iter *Iterator) ReadNumber() (ret json.Number)
- func (iter *Iterator) ReadObject() (ret string)
- func (iter *Iterator) ReadObjectCB(callback func(*Iterator, string) bool) bool
- func (iter *Iterator) ReadObjectMinimizeAllocationsCB(callbackFn func(it *Iterator, key []byte, allocated bool) bool) bool
- func (iter *Iterator) ReadString() string
- func (iter *Iterator) ReadStringAsBytes() (ret []byte, allocated bool)
- func (iter *Iterator) ReadStringAsSlice() (ret []byte)
- func (iter *Iterator) ReadUint() uint
- func (iter *Iterator) ReadUint16() (ret uint16)
- func (iter *Iterator) ReadUint32() (ret uint32)
- func (iter *Iterator) ReadUint64() uint64
- func (iter *Iterator) ReadUint8() (ret uint8)
- func (iter *Iterator) ReportError(operation string, msg string)
- func (iter *Iterator) Reset(reader io.Reader) *Iterator
- func (iter *Iterator) ResetBytes(input []byte) *Iterator
- func (iter *Iterator) Skip()
- func (iter *Iterator) SkipAndAppendBytes(buf []byte) []byte
- func (iter *Iterator) SkipAndReturnBytes() []byte
- func (iter *Iterator) WhatIsNext() ValueType
- type IteratorPool
- type Stream
- func (stream *Stream) Available() int
- func (stream *Stream) Buffer() []byte
- func (stream *Stream) Buffered() int
- func (stream *Stream) Flush() error
- func (stream *Stream) Pool() StreamPool
- func (stream *Stream) Reset(out io.Writer)
- func (stream *Stream) SetBuffer(buf []byte)
- func (stream *Stream) Write(p []byte) (nn int, err error)
- func (stream *Stream) WriteArrayEnd()
- func (stream *Stream) WriteArrayStart()
- func (stream *Stream) WriteBool(val bool)
- func (stream *Stream) WriteEmptyArray()
- func (stream *Stream) WriteEmptyObject()
- func (stream *Stream) WriteFalse()
- func (stream *Stream) WriteFloat32(val float32)
- func (stream *Stream) WriteFloat32Lossy(val float32)
- func (stream *Stream) WriteFloat64(val float64)
- func (stream *Stream) WriteFloat64Lossy(val float64)
- func (stream *Stream) WriteInt(val int)
- func (stream *Stream) WriteInt16(nval int16)
- func (stream *Stream) WriteInt32(nval int32)
- func (stream *Stream) WriteInt64(nval int64)
- func (stream *Stream) WriteInt8(nval int8)
- func (stream *Stream) WriteMore()
- func (stream *Stream) WriteNil()
- func (stream *Stream) WriteObjectEnd()
- func (stream *Stream) WriteObjectField(field string)
- func (stream *Stream) WriteObjectStart()
- func (stream *Stream) WriteRaw(s string)
- func (stream *Stream) WriteString(s string)
- func (stream *Stream) WriteStringWithHTMLEscaped(s string)
- func (stream *Stream) WriteTrue()
- func (stream *Stream) WriteUint(val uint)
- func (stream *Stream) WriteUint16(val uint16)
- func (stream *Stream) WriteUint32(val uint32)
- func (stream *Stream) WriteUint64(val uint64)
- func (stream *Stream) WriteUint8(val uint8)
- type StreamPool
- type ValueType
Constants ¶
This section is empty.
Variables ¶
var ConfigDefault = Config{}.Froze()
ConfigDefault the default API
Functions ¶
func AppendString ¶
func WriteStringSlowPath ¶
Types ¶
type API ¶
type API interface { IteratorPool StreamPool Valid(data []byte) bool }
API the public interface of this package. Primary Marshal and Unmarshal.
type Config ¶
type Config struct {
IndentionStep int
}
Config customize how the API should behave. The API is created from Config by Froze.
type Iterator ¶
type Iterator struct { Error error // contains filtered or unexported fields }
Iterator is a io.Reader like object, with JSON specific read functions. Error is not returned as return value, but stored as Error member on this iterator instance.
func NewIterator ¶
NewIterator creates an empty Iterator instance
func ParseBytes ¶
ParseBytes creates an Iterator instance from byte array
func ParseString ¶
ParseString creates an Iterator instance from string
func (*Iterator) CurrentBuffer ¶
CurrentBuffer gets current buffer as string for debugging purpose
func (*Iterator) Pool ¶
func (iter *Iterator) Pool() IteratorPool
Pool returns a pool can provide more iterator with same configuration
func (*Iterator) ReadArray ¶
ReadArray read array element, tells if the array has more element to read.
func (*Iterator) ReadArrayCB ¶
ReadArrayCB read array with callback
func (*Iterator) ReadBigFloat ¶
ReadBigFloat read big.Float
func (*Iterator) ReadBigInt ¶
ReadBigInt read big.Int
func (*Iterator) ReadFloat32 ¶
ReadFloat32 read float32
func (*Iterator) ReadFloat64 ¶
ReadFloat64 read float64
func (*Iterator) ReadNumber ¶
ReadNumber read json.Number
func (*Iterator) ReadObject ¶
ReadObject read one field from object. If object ended, returns empty string. Otherwise, returns the field name.
func (*Iterator) ReadObjectCB ¶
ReadObjectCB reads an object and calls callback each time it reads a key.
func (*Iterator) ReadObjectMinimizeAllocationsCB ¶
func (iter *Iterator) ReadObjectMinimizeAllocationsCB(callbackFn func(it *Iterator, key []byte, allocated bool) bool) bool
ReadObjectAvoidAllocationsCB reads an object and calls callbackFn each time it reads a key, keys that don't require decoding are passed to the callbackFn without allocation. If the callback function is called with the allocated argument to true that means the key has been decoded, the key argument can be stored and modified. Otherwise the key should only be accessed during the duration of the current callback.
func (*Iterator) ReadString ¶
ReadString reads and decodes a JSON string literal.
func (*Iterator) ReadStringAsBytes ¶
ReadStringAsBytes reads and decodes a JSON string literal. If allocated is false the slice should not be stored or modified, and it should not be read or modified after any mutation of the iterator.
func (*Iterator) ReadStringAsSlice ¶
ReadStringAsSlice read string from iterator without copying into string form. The []byte can not be kept, as it will change after next iterator call.
func (*Iterator) ReadUint16 ¶
ReadUint16 read uint16
func (*Iterator) ReadUint32 ¶
ReadUint32 read uint32
func (*Iterator) ReportError ¶
ReportError record a error in iterator instance with current position.
func (*Iterator) ResetBytes ¶
ResetBytes reuse iterator instance by specifying another byte array as input
func (*Iterator) Skip ¶
func (iter *Iterator) Skip()
Skip skips a json object and positions to relatively the next json object
func (*Iterator) SkipAndAppendBytes ¶
SkipAndAppendBytes skips next JSON element and appends its content to buffer, returning the result.
func (*Iterator) SkipAndReturnBytes ¶
SkipAndReturnBytes skip next JSON element, and return its content as []byte. The []byte can be kept, it is a copy of data.
func (*Iterator) WhatIsNext ¶
WhatIsNext gets ValueType of relatively next json element
type IteratorPool ¶
type IteratorPool interface { BorrowIterator(data []byte) *Iterator ReturnIterator(iter *Iterator) }
IteratorPool a thread safe pool of iterators with same configuration
type Stream ¶
type Stream struct { Error error Attachment interface{} // open for customized encoder // contains filtered or unexported fields }
stream is a io.Writer like object, with JSON specific write functions. Error is not returned as return value, but stored as Error member on this stream instance.
func NewStream ¶
NewStream create new stream instance. cfg can be jsoniter.ConfigDefault. out can be nil if write to internal buffer. bufSize is the initial size for the internal buffer in bytes.
func (*Stream) Buffered ¶
Buffered returns the number of bytes that have been written into the current buffer.
func (*Stream) Pool ¶
func (stream *Stream) Pool() StreamPool
Pool returns a pool can provide more stream with same configuration
func (*Stream) Write ¶
Write writes the contents of p into the buffer. It returns the number of bytes written. If nn < len(p), it also returns an error explaining why the write is short.
func (*Stream) WriteArrayEnd ¶
func (stream *Stream) WriteArrayEnd()
WriteArrayEnd write ] with possible indention
func (*Stream) WriteArrayStart ¶
func (stream *Stream) WriteArrayStart()
WriteArrayStart write [ with possible indention
func (*Stream) WriteEmptyObject ¶
func (stream *Stream) WriteEmptyObject()
WriteEmptyObject write {}
func (*Stream) WriteFloat32 ¶
WriteFloat32 write float32 to stream
func (*Stream) WriteFloat32Lossy ¶
WriteFloat32Lossy write float32 to stream with ONLY 6 digits precision although much much faster
func (*Stream) WriteFloat64 ¶
WriteFloat64 write float64 to stream
func (*Stream) WriteFloat64Lossy ¶
WriteFloat64Lossy write float64 to stream with ONLY 6 digits precision although much much faster
func (*Stream) WriteInt16 ¶
WriteInt16 write int16 to stream
func (*Stream) WriteInt32 ¶
WriteInt32 write int32 to stream
func (*Stream) WriteInt64 ¶
WriteInt64 write int64 to stream
func (*Stream) WriteMore ¶
func (stream *Stream) WriteMore()
WriteMore write , with possible indention
func (*Stream) WriteObjectEnd ¶
func (stream *Stream) WriteObjectEnd()
WriteObjectEnd write } with possible indention
func (*Stream) WriteObjectField ¶
WriteObjectField write "field": with possible indention
func (*Stream) WriteObjectStart ¶
func (stream *Stream) WriteObjectStart()
WriteObjectStart write { with possible indention
func (*Stream) WriteString ¶
WriteString write string to stream without html escape
func (*Stream) WriteStringWithHTMLEscaped ¶
WriteStringWithHTMLEscaped write string to stream with html special characters escaped
func (*Stream) WriteUint16 ¶
WriteUint16 write uint16 to stream
func (*Stream) WriteUint32 ¶
WriteUint32 write uint32 to stream
func (*Stream) WriteUint64 ¶
WriteUint64 write uint64 to stream
func (*Stream) WriteUint8 ¶
WriteUint8 write uint8 to stream
type StreamPool ¶
StreamPool a thread safe pool of streams with same configuration
type ValueType ¶
type ValueType int
ValueType the type for JSON element
const ( // InvalidValue invalid JSON element InvalidValue ValueType = iota // StringValue JSON element "string" StringValue // NumberValue JSON element 100 or 0.10 NumberValue // NilValue JSON element null NilValue // BoolValue JSON element true or false BoolValue // ArrayValue JSON element [] ArrayValue // ObjectValue JSON element {} ObjectValue )