jsonx

package
v1.15.0 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2026 License: Apache-2.0 Imports: 5 Imported by: 3

Documentation

Overview

Package jsonx provides helpers for json in/out operations

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrObjectExpected is returned when a JSON round-trip does not produce an object
	ErrObjectExpected = errors.New("json value is not an object")
	// ErrKeyRequired is returned when a JSON object key is empty
	ErrKeyRequired = errors.New("json key is required")
)

Functions

func ApplyOverlay added in v1.15.0

func ApplyOverlay[T any](base T, overlay any) (T, error)

ApplyOverlay applies a JSON overlay to an existing typed value

func CloneRawMessage added in v1.15.0

func CloneRawMessage(raw json.RawMessage) json.RawMessage

CloneRawMessage copies a raw JSON document to avoid accidental aliasing

func DecodeAnyOrNil added in v1.15.0

func DecodeAnyOrNil(raw json.RawMessage) any

DecodeAnyOrNil decodes raw JSON to an untyped value or returns nil on failure/empty input

func DeepMerge added in v1.15.0

func DeepMerge(base, patch json.RawMessage) (json.RawMessage, bool, error)

DeepMerge deep-merges patch into base and reports whether the document changed. Both arguments must be JSON objects. Returns the merged document and a boolean indicating whether the result differs from base

func IsEmptyRawMessage added in v1.15.0

func IsEmptyRawMessage(raw json.RawMessage) bool

IsEmptyRawMessage reports whether a raw JSON message is empty or null

func MergeObjectMap added in v1.15.0

func MergeObjectMap(base json.RawMessage, patch map[string]json.RawMessage) (json.RawMessage, bool, error)

MergeObjectMap shallow-merges a raw JSON object with the supplied top-level patch map

func RoundTrip

func RoundTrip(input any, output any) error

RoundTrip marshals input to JSON and unmarshals it into output

func SetObjectKey added in v1.15.0

func SetObjectKey(base json.RawMessage, key string, value any) (json.RawMessage, bool, error)

SetObjectKey sets or replaces one top-level key in a raw JSON object

func ToMap

func ToMap(value any) (map[string]any, error)

ToMap converts an arbitrary value into a JSON object map

func ToRawMap added in v1.15.0

func ToRawMap(value any) (map[string]json.RawMessage, error)

ToRawMap converts an arbitrary value into a JSON object map of raw values.

func ToRawMessage added in v1.15.0

func ToRawMessage(value any) (json.RawMessage, error)

ToRawMessage converts an arbitrary value into a raw JSON document

func UnmarshalIfPresent added in v1.15.0

func UnmarshalIfPresent(raw json.RawMessage, output any) error

UnmarshalIfPresent unmarshals raw JSON when it is non-empty

func ValidateSchema added in v1.15.0

func ValidateSchema(schema any, document any) (*gojsonschema.Result, error)

ValidateSchema validates a JSON document against a JSON schema and returns the raw gojsonschema result for caller-specific error handling.

func ValidationErrorStrings added in v1.15.0

func ValidationErrorStrings(result *gojsonschema.Result) []string

ValidationErrorStrings converts schema validation errors into string messages.

Types

This section is empty.

Jump to

Keyboard shortcuts

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