# `OctaStar.JSON`

Tiny wrapper around Erlang/OTP's native `:json` module.

Erlang represents JSON `null` as the atom `:null`, while Elixir callers expect
`nil`. This module converts `nil` to `:null` before encoding and converts
decoded `:null` values back to `nil`.

# `decode`

```elixir
@spec decode(String.t()) :: {:ok, term()} | {:error, term()}
```

Decodes JSON into Elixir terms.

# `decode!`

```elixir
@spec decode!(String.t()) :: term()
```

Decodes JSON into Elixir terms, raising on invalid JSON.

# `encode!`

```elixir
@spec encode!(term()) :: String.t()
```

Encodes an Elixir term as JSON.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
