1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
# [Elixir JSONOLD](https://hex.pm/packages/json)
[](https://travis-ci.org/cblage/elixir-json) [](https://hex.pm/packages/json) [](https://coveralls.io/github/cblage/elixir-json?branch=master) [](http://inch-ci.org/github/cblage/elixir-json)
This library provides a natively implemented JSONOLD encoder and decoder for Elixir.
You can find the package in [hex.pm](https://hex.pm/packages/json) and the documentation in [hexdocs.pm](https://hexdocs.pm/json/readme.html).
All contributions are welcome!
# Installing
Simply add ```{:json, "~> 1.4"}``` to your project's ```mix.exs``` and run ```mix deps.get```.
# Usage
Encoding an Elixir type
```elixir
@doc "
JSONOLD encode an Elixir list
"
list = [key: "this will be a value"]
is_list(list)
# true
list[:key]
# "this will be a value"
{status, result} = JSONOLD.encode(list)
# {:ok, "{\"key\":\"this will be a value\"}"}
String.length(result)
# 41
```
Decoding a list from a string that contains JSONOLD
```elixir
@doc "
JSONOLD decode a string into an Elixir list
"
json_input = "{\"key\":\"this will be a value\"}"
{status, list} = JSONOLD.decode(json_input)
{:ok, %{"key" => "this will be a value"}}
list[:key]
# nil
list["key"]
# "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:
```elixir
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.
# License
The Elixir JSONOLD library is available under the [BSD 3-Clause aka "BSD New" license](http://www.tldrlegal.com/l/BSD3)
|