SuperJSON (superjson v0.1.0)

Copy Markdown View Source

SuperJSON encoder and decoder for Elixir.

SuperJSON extends JSON with annotations (meta) that describe rich JavaScript/TypeScript data types (Dates, BigInts, Regexps, Sets, Maps, undefined, referential equalities). This module allows you to encode and decode these payloads transparently.

Summary

Functions

Decodes a SuperJSON payload (a map or raw JSON binary string).

Decodes a SuperJSON payload or raises an error if binary JSON parsing fails.

Encodes a native Elixir term into a SuperJSON-compliant map {"json" => ..., "meta" => ...}.

Encodes a native Elixir term into a raw SuperJSON binary string.

Functions

decode(payload)

@spec decode(map() | binary()) :: {:ok, term()} | {:error, term()}

Decodes a SuperJSON payload (a map or raw JSON binary string).

decode!(payload)

@spec decode!(map() | binary()) :: term()

Decodes a SuperJSON payload or raises an error if binary JSON parsing fails.

encode(term)

@spec encode(term()) :: map()

Encodes a native Elixir term into a SuperJSON-compliant map {"json" => ..., "meta" => ...}.

encode!(term)

@spec encode!(term()) :: binary()

Encodes a native Elixir term into a raw SuperJSON binary string.