Selecto.Output.Transformers.Json
(Selecto v0.4.5)
Copy Markdown
JSON transformer for Selecto query results.
Provides JSON serialization with configurable options for null handling, metadata inclusion, pretty printing, and streaming support for large datasets.
Options
:include_meta- Include query metadata in response (default: false):pretty- Pretty print JSON output (default: false):null_handling- How to handle nil values::null,:omit,:empty_string(default::null):keys- Key format::strings,:atoms(default::strings):coerce_types- Enable type coercion (default: false):date_format- Date serialization format::iso8601,:unix,:string(default::iso8601):decimal_format- Decimal format::string,:float(default::string)
Examples
# Basic JSON serialization
{:ok, json} = Json.transform(rows, columns, %{}, [])
# JSON with metadata
{:ok, json} = Json.transform(rows, columns, %{}, [include_meta: true])
# Pretty printed JSON with null omission
{:ok, json} = Json.transform(rows, columns, %{}, [
pretty: true,
null_handling: :omit
])
# Streaming for large datasets
stream = Json.stream_transform(rows, columns, %{}, [pretty: true])
Summary
Functions
Transform query results to a JSON stream for large datasets.
Transform query results to JSON string.
Types
@type json_options() :: [json_option()]
Functions
@spec stream_transform([list()] | Enumerable.t(), [String.t()], map(), json_options()) :: Enumerable.t()
Transform query results to a JSON stream for large datasets.
Returns a stream that yields JSON strings, useful for processing large result sets without loading everything into memory.
@spec transform([list()], [String.t()], map(), json_options()) :: {:ok, String.t()} | {:error, Selecto.Error.t()}
Transform query results to JSON string.
Returns a JSON string representation of the query results with configurable serialization options.