Sinter.JSON (Sinter v0.1.0)

View Source

JSON encode/decode helpers with Sinter validation and transforms.

Summary

Functions

Decodes JSON and validates against a schema.

Decodes JSON and validates against a schema, raising on failure.

Encodes data as JSON after applying the transform pipeline.

Encodes data as JSON and raises on failure.

Types

decode_opts()

@type decode_opts() :: Sinter.Validator.validation_opts()

encode_opts()

@type encode_opts() :: [aliases: map(), formats: map(), drop_nil?: boolean()]

Functions

decode(json, schema, opts \\ [])

@spec decode(String.t(), Sinter.Schema.t(), decode_opts()) ::
  {:ok, map()} | {:error, [Sinter.Error.t()]}

Decodes JSON and validates against a schema.

decode!(json, schema, opts \\ [])

@spec decode!(String.t(), Sinter.Schema.t(), decode_opts()) :: map()

Decodes JSON and validates against a schema, raising on failure.

encode(data, opts \\ [])

@spec encode(term(), encode_opts()) :: {:ok, String.t()} | {:error, term()}

Encodes data as JSON after applying the transform pipeline.

encode!(data, opts \\ [])

@spec encode!(term(), encode_opts()) :: String.t()

Encodes data as JSON and raises on failure.