Documentation ¶
Index ¶
- Variables
- func FakeOmitempty(t reflect.StructTag) reflect.StructTag
- func FlattenStructTag(tags []Tag) reflect.StructTag
- func Marshal(v any) ([]byte, error)
- func NewDecoder(r io.Reader) *jsoniter.Decoder
- func NewEncoder(w io.Writer) *jsoniter.Encoder
- func Unmarshal(data []byte, v any) error
- type FakedOmitemptyField
- type IsUndefineder
- type Tag
- type UndefinedSkipperExtension
- func (extension *UndefinedSkipperExtension) CreateDecoder(typ reflect2.Type) jsoniter.ValDecoder
- func (extension *UndefinedSkipperExtension) CreateEncoder(typ reflect2.Type) jsoniter.ValEncoder
- func (extension *UndefinedSkipperExtension) CreateMapKeyDecoder(typ reflect2.Type) jsoniter.ValDecoder
- func (extension *UndefinedSkipperExtension) CreateMapKeyEncoder(typ reflect2.Type) jsoniter.ValEncoder
- func (extension *UndefinedSkipperExtension) DecorateDecoder(typ reflect2.Type, decoder jsoniter.ValDecoder) jsoniter.ValDecoder
- func (extension *UndefinedSkipperExtension) DecorateEncoder(typ reflect2.Type, encoder jsoniter.ValEncoder) jsoniter.ValEncoder
- func (extension *UndefinedSkipperExtension) UpdateStructDescriptor(structDescriptor *jsoniter.StructDescriptor)
- type UndefinedableEncoder
Constants ¶
This section is empty.
Variables ¶
View Source
var (
ErrUnpairedKey = errors.New("unpaired key")
)
Functions ¶
func FlattenStructTag ¶
func Marshal ¶
Marshal encodes v into JSON. It skips fields if those are undefined Undefinedable[T].
v can be any type.
Types ¶
type FakedOmitemptyField ¶
type FakedOmitemptyField struct { reflect2.StructField // contains filtered or unexported fields }
FakedOmitemptyField implements reflect2.StructField interface, faking the struct tag to pretend it is always tagged with ,omitempty option.
The Zero value is not ready for use. Make it with NewFakedOmitemptyField.
func NewFakedOmitemptyField ¶
func NewFakedOmitemptyField(f reflect2.StructField) FakedOmitemptyField
func (FakedOmitemptyField) Tag ¶
func (f FakedOmitemptyField) Tag() reflect.StructTag
type IsUndefineder ¶
type IsUndefineder interface {
IsUndefined() bool
}
type UndefinedSkipperExtension ¶
type UndefinedSkipperExtension struct { }
UndefinedSkipperExtension is the extension for jsoniter.API. When marshaling, this extension forces jsoniter.API to skip undefined struct fields. A field is considered undefined if its type implements interface{ IsUndefined() bool } and if it returns true.
func (*UndefinedSkipperExtension) CreateDecoder ¶
func (extension *UndefinedSkipperExtension) CreateDecoder(typ reflect2.Type) jsoniter.ValDecoder
func (*UndefinedSkipperExtension) CreateEncoder ¶
func (extension *UndefinedSkipperExtension) CreateEncoder(typ reflect2.Type) jsoniter.ValEncoder
func (*UndefinedSkipperExtension) CreateMapKeyDecoder ¶
func (extension *UndefinedSkipperExtension) CreateMapKeyDecoder(typ reflect2.Type) jsoniter.ValDecoder
func (*UndefinedSkipperExtension) CreateMapKeyEncoder ¶
func (extension *UndefinedSkipperExtension) CreateMapKeyEncoder(typ reflect2.Type) jsoniter.ValEncoder
func (*UndefinedSkipperExtension) DecorateDecoder ¶
func (extension *UndefinedSkipperExtension) DecorateDecoder(typ reflect2.Type, decoder jsoniter.ValDecoder) jsoniter.ValDecoder
func (*UndefinedSkipperExtension) DecorateEncoder ¶
func (extension *UndefinedSkipperExtension) DecorateEncoder(typ reflect2.Type, encoder jsoniter.ValEncoder) jsoniter.ValEncoder
func (*UndefinedSkipperExtension) UpdateStructDescriptor ¶
func (extension *UndefinedSkipperExtension) UpdateStructDescriptor(structDescriptor *jsoniter.StructDescriptor)
type UndefinedableEncoder ¶
type UndefinedableEncoder struct {
// contains filtered or unexported fields
}
UndefinedableEncoder fakes the Encoder so that undefined Undefinedable[T] fields are skipped.
Click to show internal directories.
Click to hide internal directories.