 <p>The tuple part that you are looking for is actually a <a href="http://elixir-lang.org/getting-started/maps-and-dicts.html#maps" rel="nofollow">map</a>.</p> <p>The reason your original version didn't work is because your JSON, when decoded, returned a map as the first element of a <a href="http://elixir-lang.org/getting-started/basic-types.html#%28linked%29-lists" rel="nofollow">list</a>.</p> <p>There are multiple ways to get the first element of a list.</p> <p>You can either use the <code>hd</code> function:</p> <pre><code>iex(2)&gt; s = [%{"left_operand" =&gt; "2", "start_usage" =&gt; "0"}] [%{"left_operand" =&gt; "2", "start_usage" =&gt; "0"}] iex(3)&gt; hd s %{"left_operand" =&gt; "2", "start_usage" =&gt; "0"} </code></pre> <p>Or you can pattern match:</p> <pre><code>iex(4)&gt; [s | _] = [%{"left_operand" =&gt; "2", "start_usage" =&gt; "0"}] [%{"left_operand" =&gt; "2", "start_usage" =&gt; "0"}] iex(5)&gt; s %{"left_operand" =&gt; "2", "start_usage" =&gt; "0"} </code></pre> <p>Here <a href="http://elixir-lang.org/getting-started/pattern-matching.html#pattern-matching" rel="nofollow">destructuring</a> is used to split the list into its head and tail elements (the tail is ignored which is why <code>_</code> is used)</p> <p>This has nothing to do with the type of the elements inside the list. If you wanted the first 3 elements of a list, you could do:</p> <pre><code>iex(6)&gt; [a, b, c | tail] = ["a string", %{}, 1, 5, ?s, []] ["a string", %{}, 1, 5, 115, []] iex(7)&gt; a "a string" iex(8)&gt; b %{} iex(9)&gt; c 1 iex(10)&gt; tail [5, 115, []] </code></pre>