Elixir JSON

Build Status Hex.pm Coverage Status Inline docs

This library provides a natively implemented JSON encoder and decoder for Elixir.

You can find the package in hex.pm and the documentation in hexdocs.pm.

All contributions are welcome!


Simply add {:json, "~> 1.4"} to your project's mix.exs and run mix deps.get.


Encoding an Elixir type

  @doc "
    JSON encode an Elixir list
  list = [key: "this will be a value"]
  # true
  # "this will be a value"
  {status, result} = JSON.encode(list)
  # {:ok, "{\"key\":\"this will be a value\"}"}
  # 41

Decoding a list from a string that contains JSON

  @doc "
    JSON decode a string into an Elixir list
  json_input = "{\"key\":\"this will be a value\"}"
  {status, list} = JSON.decode(json_input)
    {:ok, %{"key" => "this will be a value"}}
  # nil
  # "this will be a value"

At any time, you can turn on verbose logging for this library only. To do so, head to config file of your application and add below lines:

use Mix.Config

config :logger, level: :debug

config :json, log_level: :debug

Note that, changing only :logger level to :info, :warn or :error will silent :json too.


The Elixir JSON library is available under the BSD 3-Clause aka "BSD New" license