json

package
v1.18.0 Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2025 License: Apache-2.0 Imports: 15 Imported by: 131

Documentation

Overview

Package json contains helper functions for encoding and decoding JSON.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeBinary added in v1.15.0

func DecodeBinary[T any, P binaryUnmarshaler[T]](d *jx.Decoder) (T, error)

DecodeBinary decodes a value using encoding.BinaryUnmarshaler interface.

func DecodeDate

func DecodeDate(d *jx.Decoder) (v time.Time, err error)

DecodeDate decodes date from json.

func DecodeDateTime

func DecodeDateTime(d *jx.Decoder) (v time.Time, err error)

DecodeDateTime decodes date-time from json.

func DecodeDecimal added in v1.16.0

func DecodeDecimal(d *jx.Decoder) (decimal.Decimal, error)

DecodeDecimal decodes decimal.Decimal from json.

func DecodeDuration

func DecodeDuration(d *jx.Decoder) (v time.Duration, err error)

DecodeDuration decodes duration from json.

func DecodeExternal added in v1.15.0

func DecodeExternal[T any](d *jx.Decoder) (T, error)

DecodeExternal decodes a value using json.Unmarshal.

func DecodeIP

func DecodeIP(d *jx.Decoder) (netip.Addr, error)

DecodeIP decodes netip.Addr.

func DecodeIPv4 added in v0.55.0

func DecodeIPv4(d *jx.Decoder) (netip.Addr, error)

DecodeIPv4 decodes netip.Addr.

func DecodeIPv6 added in v0.55.0

func DecodeIPv6(d *jx.Decoder) (netip.Addr, error)

DecodeIPv6 decodes netip.Addr.

func DecodeJSON added in v1.15.0

func DecodeJSON[T any, P jsonUnmarshaler[T]](d *jx.Decoder) (T, error)

DecodeJSON decodes a value using json.Marshaler interface.

func DecodeMAC added in v0.82.0

func DecodeMAC(d *jx.Decoder) (net.HardwareAddr, error)

DecodeMAC decodes net.HardwareAddr.

func DecodeNative added in v1.15.0

func DecodeNative[T any, P unmarshaler[T]](d *jx.Decoder) (T, error)

DecodeNative decodes a value using Unmarshaler interface.

func DecodeStringDecimal added in v1.16.0

func DecodeStringDecimal(d *jx.Decoder) (decimal.Decimal, error)

DecodeStringDecimal decodes decimal.Decimal from json string.

func DecodeStringFloat32 added in v0.70.0

func DecodeStringFloat32(d *jx.Decoder) (float32, error)

DecodeStringFloat32 decodes string float32 from json.

func DecodeStringFloat64 added in v0.70.0

func DecodeStringFloat64(d *jx.Decoder) (float64, error)

DecodeStringFloat64 decodes string float64 from json.

func DecodeStringInt added in v0.70.0

func DecodeStringInt(d *jx.Decoder) (int, error)

DecodeStringInt decodes string int from json.

func DecodeStringInt16 added in v0.70.0

func DecodeStringInt16(d *jx.Decoder) (int16, error)

DecodeStringInt16 decodes string int16 from json.

func DecodeStringInt32 added in v0.29.0

func DecodeStringInt32(d *jx.Decoder) (int32, error)

DecodeStringInt32 decodes string int32 from json.

func DecodeStringInt64 added in v0.29.0

func DecodeStringInt64(d *jx.Decoder) (int64, error)

DecodeStringInt64 decodes string int64 from json.

func DecodeStringInt8 added in v0.70.0

func DecodeStringInt8(d *jx.Decoder) (int8, error)

DecodeStringInt8 decodes string int8 from json.

func DecodeStringText added in v1.15.0

func DecodeStringText[T any, P textUnmarshaler[T]](d *jx.Decoder) (T, error)

DecodeStringText decodes a string value using encoding.TextUnmarshaler interface.

func DecodeStringUint added in v0.70.0

func DecodeStringUint(d *jx.Decoder) (uint, error)

DecodeStringUint decodes string int from json.

func DecodeStringUint16 added in v0.70.0

func DecodeStringUint16(d *jx.Decoder) (uint16, error)

DecodeStringUint16 decodes string int16 from json.

func DecodeStringUint32 added in v0.70.0

func DecodeStringUint32(d *jx.Decoder) (uint32, error)

DecodeStringUint32 decodes string int32 from json.

func DecodeStringUint64 added in v0.70.0

func DecodeStringUint64(d *jx.Decoder) (uint64, error)

DecodeStringUint64 decodes string int64 from json.

func DecodeStringUint8 added in v0.70.0

func DecodeStringUint8(d *jx.Decoder) (uint8, error)

DecodeStringUint8 decodes string int8 from json.

func DecodeStringUnixMicro added in v0.46.1

func DecodeStringUnixMicro(d *jx.Decoder) (time.Time, error)

DecodeStringUnixMicro decodes unix-micro from json string.

func DecodeStringUnixMilli added in v0.46.1

func DecodeStringUnixMilli(d *jx.Decoder) (time.Time, error)

DecodeStringUnixMilli decodes unix-milli from json string.

func DecodeStringUnixNano added in v0.46.1

func DecodeStringUnixNano(d *jx.Decoder) (time.Time, error)

DecodeStringUnixNano decodes unix-nano from json string.

func DecodeStringUnixSeconds added in v0.46.1

func DecodeStringUnixSeconds(d *jx.Decoder) (time.Time, error)

DecodeStringUnixSeconds decodes unix-seconds from json string.

func DecodeText added in v1.15.0

func DecodeText[T any, P textUnmarshaler[T]](d *jx.Decoder) (T, error)

DecodeText decodes a value using encoding.TextUnmarshaler interface.

func DecodeTime

func DecodeTime(d *jx.Decoder) (v time.Time, err error)

DecodeTime decodes time from json.

func DecodeTimeFormat added in v1.6.0

func DecodeTimeFormat(d *jx.Decoder, layout string) (v time.Time, err error)

DecodeTimeFormat decodes date, time & date-time from json using a custom layout.

func DecodeURI

func DecodeURI(i *jx.Decoder) (v url.URL, err error)

DecodeURI decodes url.URL from json.

func DecodeUUID

func DecodeUUID(i *jx.Decoder) (v uuid.UUID, err error)

DecodeUUID decodes UUID from json.

func DecodeUnixMicro added in v0.30.0

func DecodeUnixMicro(d *jx.Decoder) (time.Time, error)

DecodeUnixMicro decodes unix-micro from json string.

func DecodeUnixMilli added in v0.30.0

func DecodeUnixMilli(d *jx.Decoder) (time.Time, error)

DecodeUnixMilli decodes unix-milli from json string.

func DecodeUnixNano added in v0.30.0

func DecodeUnixNano(d *jx.Decoder) (time.Time, error)

DecodeUnixNano decodes unix-nano from json string.

func DecodeUnixSeconds added in v0.30.0

func DecodeUnixSeconds(d *jx.Decoder) (time.Time, error)

DecodeUnixSeconds decodes unix-seconds from json string.

func Encode

func Encode(m Marshaler) []byte

Encode Marshaler to byte slice.

func EncodeBinary added in v1.15.0

func EncodeBinary[T any, P binaryMarshaler[T]](e *jx.Encoder, v T)

EncodeBinary encodes a value using encoding.BinaryMarshaler interface.

func EncodeDate

func EncodeDate(e *jx.Encoder, v time.Time)

EncodeDate encodes date to json.

func EncodeDateTime

func EncodeDateTime(e *jx.Encoder, v time.Time)

EncodeDateTime encodes date-time to json.

func EncodeDecimal added in v1.16.0

func EncodeDecimal(e *jx.Encoder, v decimal.Decimal)

EncodeDecimal encodes decimal.Decimal to json.

func EncodeDuration

func EncodeDuration(e *jx.Encoder, v time.Duration)

EncodeDuration encodes duration to json.

func EncodeExternal added in v1.15.0

func EncodeExternal[T any](e *jx.Encoder, v T)

EncodeExternal encodes a value using json.Marshal.

func EncodeIP

func EncodeIP(s *jx.Encoder, v netip.Addr)

EncodeIP encodes netip.Addr.

func EncodeIPv4 added in v0.55.0

func EncodeIPv4(s *jx.Encoder, v netip.Addr)

EncodeIPv4 encodes netip.Addr.

func EncodeIPv6 added in v0.55.0

func EncodeIPv6(s *jx.Encoder, v netip.Addr)

EncodeIPv6 encodes netip.Addr.

func EncodeJSON added in v1.15.0

func EncodeJSON[T any, P jsonMarshaler[T]](e *jx.Encoder, v T)

EncodeJSON encodes a value using json.Marshaler interface.

func EncodeMAC added in v0.82.0

func EncodeMAC(e *jx.Encoder, v net.HardwareAddr)

EncodeMAC encodes net.HardwareAddr.

func EncodeNative added in v1.15.0

func EncodeNative[T any, P marshaler[T]](e *jx.Encoder, v T)

EncodeNative encodes a value using Marshaler interface.

func EncodeStringDecimal added in v1.16.0

func EncodeStringDecimal(e *jx.Encoder, v decimal.Decimal)

EncodeStringDecimal encodes decimal.Decimal to json string.

func EncodeStringFloat32 added in v0.70.0

func EncodeStringFloat32(e *jx.Encoder, v float32)

EncodeStringFloat32 encodes string float32 to json.

func EncodeStringFloat64 added in v0.70.0

func EncodeStringFloat64(e *jx.Encoder, v float64)

EncodeStringFloat64 encodes string float64 to json.

func EncodeStringInt added in v0.70.0

func EncodeStringInt(e *jx.Encoder, v int)

EncodeStringInt encodes string int to json.

func EncodeStringInt16 added in v0.70.0

func EncodeStringInt16(e *jx.Encoder, v int16)

EncodeStringInt16 encodes string int16 to json.

func EncodeStringInt32 added in v0.29.0

func EncodeStringInt32(e *jx.Encoder, v int32)

EncodeStringInt32 encodes string int32 to json.

func EncodeStringInt64 added in v0.29.0

func EncodeStringInt64(e *jx.Encoder, v int64)

EncodeStringInt64 encodes string int64 to json.

func EncodeStringInt8 added in v0.70.0

func EncodeStringInt8(e *jx.Encoder, v int8)

EncodeStringInt8 encodes string int8 to json.

func EncodeStringText added in v1.15.0

func EncodeStringText[T any, P textMarshaler[T]](e *jx.Encoder, v T)

EncodeStringText encodes a string value using encoding.TextMarshaler interface.

func EncodeStringUint added in v0.70.0

func EncodeStringUint(e *jx.Encoder, v uint)

EncodeStringUint encodes string uint to json.

func EncodeStringUint16 added in v0.70.0

func EncodeStringUint16(e *jx.Encoder, v uint16)

EncodeStringUint16 encodes string uint16 to json.

func EncodeStringUint32 added in v0.70.0

func EncodeStringUint32(e *jx.Encoder, v uint32)

EncodeStringUint32 encodes string uint32 to json.

func EncodeStringUint64 added in v0.70.0

func EncodeStringUint64(e *jx.Encoder, v uint64)

EncodeStringUint64 encodes string uint64 to json.

func EncodeStringUint8 added in v0.70.0

func EncodeStringUint8(e *jx.Encoder, v uint8)

EncodeStringUint8 encodes string uint8 to json.

func EncodeStringUnixMicro added in v0.46.1

func EncodeStringUnixMicro(e *jx.Encoder, v time.Time)

EncodeStringUnixMicro encodes unix-micro to json string.

func EncodeStringUnixMilli added in v0.46.1

func EncodeStringUnixMilli(e *jx.Encoder, v time.Time)

EncodeStringUnixMilli encodes unix-milli to json string.

func EncodeStringUnixNano added in v0.46.1

func EncodeStringUnixNano(e *jx.Encoder, v time.Time)

EncodeStringUnixNano encodes unix-nano to json string.

func EncodeStringUnixSeconds added in v0.46.1

func EncodeStringUnixSeconds(e *jx.Encoder, v time.Time)

EncodeStringUnixSeconds encodes unix-seconds to json string.

func EncodeText added in v1.15.0

func EncodeText[T any, P textMarshaler[T]](e *jx.Encoder, v T)

EncodeText encodes a value using encoding.TextMarshaler interface.

func EncodeTime

func EncodeTime(e *jx.Encoder, v time.Time)

EncodeTime encodes time to json.

func EncodeTimeFormat added in v1.6.0

func EncodeTimeFormat(e *jx.Encoder, v time.Time, layout string)

EncodeTimeFormat encodes date, time & date-time to json using a custom layout.

func EncodeURI

func EncodeURI(s *jx.Encoder, v url.URL)

EncodeURI encodes url.URL to json.

func EncodeUUID

func EncodeUUID(s *jx.Encoder, v uuid.UUID)

EncodeUUID encodes UUID to json.

func EncodeUnixMicro added in v0.30.0

func EncodeUnixMicro(e *jx.Encoder, v time.Time)

EncodeUnixMicro encodes unix-micro to json string.

func EncodeUnixMilli added in v0.30.0

func EncodeUnixMilli(e *jx.Encoder, v time.Time)

EncodeUnixMilli encodes unix-milli to json string.

func EncodeUnixNano added in v0.30.0

func EncodeUnixNano(e *jx.Encoder, v time.Time)

EncodeUnixNano encodes unix-nano to json string.

func EncodeUnixSeconds added in v0.30.0

func EncodeUnixSeconds(e *jx.Encoder, v time.Time)

EncodeUnixSeconds encodes unix-seconds to json string.

func Equal added in v0.34.0

func Equal(a, b []byte) (bool, error)

Equal compares two JSON values.

func Marshal

func Marshal(val any) ([]byte, error)

Marshal value to json.

func NewTimeDecoder added in v1.6.0

func NewTimeDecoder(layout string) func(i *jx.Decoder) (time.Time, error)

NewTimeDecoder returns a new time decoder using a custom layout.

func NewTimeEncoder added in v1.6.0

func NewTimeEncoder(layout string) func(e *jx.Encoder, v time.Time)

NewTimeEncoder returns a new time encoder using a custom layout.

func Unmarshal

func Unmarshal(data []byte, val any) error

Unmarshal value from json.

Types

type Marshaler

type Marshaler interface {
	Encode(e *jx.Encoder)
}

Marshaler implements json writing.

type Nullable

type Nullable interface {
	IsNil() bool
}

Nullable can be nil (but defined) or not.

type Resettable

type Resettable interface {
	Reset()
}

Resettable value can be unset.

type Settable

type Settable interface {
	IsSet() bool
}

Settable value can be set (present) or unset (i.e. not provided or undefined).

type Unmarshaler

type Unmarshaler interface {
	Decode(d *jx.Decoder) error
}

Unmarshaler implements json reading.

type Value

type Value interface {
	Marshaler
	Unmarshaler
}

Value represents a json value.

Jump to

Keyboard shortcuts

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