Popularity
6.2
Stable
Activity
0.0
Stable
61
7
21

Monthly Downloads: 18
Programming language: Elixir
License: Do What The F*ck You Want To Public License
Tags: JSON    
Latest version: v0.1.2

jazz alternatives and similar packages

Based on the "JSON" category.
Alternatively, view jazz alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of jazz or a related project?

Add another 'JSON' Package

README

jazz - JSON handling library for Elixir

Jazz is a JSON handling library written in Elixir, for Elixir.

Examples

use Jazz

JSON.encode!(%{name: "David", surname: "Davidson"})
  |> IO.puts # => {"name":"David","surname":"Davidson"}

JSON.decode!(~S/{"name":"David","surname":"Davidson"}/)
  |> IO.inspect # => %{"name" => "David", "surname" => "Davidson"}

JSON.decode!(~S/{"name":"David","surname":"Davidson"}/, keys: :atoms)
  |> IO.inspect # => %{name: "David", surname: "Davidson"}

# would raise if the keys weren't already existing atoms
JSON.decode!(~S/{"name":"David","surname":"Davidson"}/, keys: :atoms!)
  |> IO.inspect # => %{name: "David", surname: "Davidson"}

defmodule Person do
  defstruct name: nil, surname: nil
end

JSON.encode!(%Person{name: "David", surname: "Davidson"})
  |> IO.puts # => {"name":"David","surname":"Davidson"}

JSON.decode!(~S/{"name":"David","surname":"Davidson"}/, as: Person)
  |> IO.inspect # => %Person{name: "David", surname: "Davidson"}

defimpl JSON.Encoder, for: HashDict do
  def encode(self, options) do
    HashDict.to_list(self) |> Enum.into(%{})
  end
end

defimpl JSON.Decoder, for: HashDict do
  def decode(_new, parsed, _options) do
    parsed |> Enum.into(HashDict.new)
  end
end

JSON.encode!(HashDict.new([name: "David", surname: "Davidson"]))
  |> IO.puts # => {"name":"David","surname":"Davidson"}

JSON.decode!(~S/{"name":"David","surname":"Davidson"}/, as: HashDict)
  |> IO.inspect # => #HashDict<[{"name", "David" }, { "surname", "Davidson" }]>