title: elixir Poison data type parse Json data
body: <p>I'm new to elixir, so sorry, I'm sure this is simple.</p>
  
  <p>I can find anything about a data type that follows this pattern: </p>
  
  <p><code>%{"quoted_string" =&gt; "string_w_quotes"}</code></p>
  
  <p>What is that called?</p>
  
  <p>Here's the problem I'm having. I'm using HTTPoison and Poison. I call a Get request and successfully get a JSON response, then I pipe that whole response to Poison. Then I pattern match on what potion gives me. I'm trying to get to the point where I can say <code>body.address</code> but I get an error. </p>
  
  <p>Here's the relevant code:</p>
  
  <pre><code># after call
  ...
  body
  |&gt; Poison.decode!
  |&gt; case do
    {:ok, %HTTPoison.Response{body: body}} -&gt;
      IO.puts "response received"
      body.address
  ...
  </code></pre>
  
  <p>Then it prints this:</p>
  
  <blockquote>
    <p>... response received
    ** (KeyError) key :address not found in: %{"address" => "123", "public" => "abc"} ...</p>
  </blockquote>
  
  <p>So I guess my real question is how do I turn </p>
  
  <blockquote>
    <p>%{"address" => "123", "public" => "abc"}</p>
  </blockquote>
  
  <p>into </p>
  
  <blockquote>
    <p>%{:address => "123", :public => "abc"}</p>
  </blockquote>
  
  <p>so that I can successfully use this:</p>
  
  <pre><code>body.address
  </code></pre>
  
  <p>is that right?</p>