Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to access JSON from a rails @variable?
    text
    copied!<p>In rails I'm calling an API that returns JSON:</p> <pre><code>{"observations":{"realtime_start":"2012-12-27","realtime_end":"2012-12-27","observation_start":"1776-07-04","observation_end":"9999-12-31","units":"pca","output_type":"1","file_type":"xml","order_by":"observation_date","sort_order":"asc","count":"263","offset":"0","limit":"100000","observation":[{"realtime_start":"2012-12-27","realtime_end":"2012-12-27","date":"1947-01-01","value":"."},{"realtime_start":"2012-12-27","realtime_end":"2012-12-27","date":"1947-04-01","value":"-0.60853"} </code></pre> <p>In a controller I'm passing the JSON into an instance variable:</p> <pre><code># Send the http request response = Net::HTTP.get_response(uri) # captures the http response test = response.body #converts the http response hash from xml to json show_info = Hash.from_xml(test).to_json @it = show_info </code></pre> <p>Finally I render out the instance variable in a view:</p> <pre><code>&lt;script&gt; x = "&lt;%= @it %&gt;" &lt;/script&gt; </code></pre> <p>If I type x enter in the console, the json pops up formatted a bit differently which may be my problem.. </p> <pre><code> "{&amp;quot;observations&amp;quot;:{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;observation_start&amp;quot;:&amp;quot;1776-07-04&amp;quot;,&amp;quot;observation_end&amp;quot;:&amp;quot;9999-12-31&amp;quot;,&amp;quot;units&amp;quot;:&amp;quot;pca&amp;quot;,&amp;quot;output_type&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;file_type&amp;quot;:&amp;quot;xml&amp;quot;,&amp;quot;order_by&amp;quot;:&amp;quot;observation_date&amp;quot;,&amp;quot;sort_order&amp;quot;:&amp;quot;asc&amp;quot;,&amp;quot;count&amp;quot;:&amp;quot;263&amp;quot;,&amp;quot;offset&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;limit&amp;quot;:&amp;quot;100000&amp;quot;,&amp;quot;observation&amp;quot;:[{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;date&amp;quot;:&amp;quot;2010-10-01&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;2.39307&amp;quot;},{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;date&amp;quot;:&amp;quot;2011-01-01&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;0.07892&amp;quot;},{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;date&amp;quot;:&amp;quot;2011-04-01&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;2.47721&amp;quot;},{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;date&amp;quot;:&amp;quot;2011-07-01&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;1.27864&amp;quot;},{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;date&amp;quot;:&amp;quot;2011-10-01&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;4.09234&amp;quot;},{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;date&amp;quot;:&amp;quot;2012-01-01&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;1.96053&amp;quot;},{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;date&amp;quot;:&amp;quot;2012-04-01&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;1.25266&amp;quot;},{&amp;quot;realtime_start&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;realtime_end&amp;quot;:&amp;quot;2012-12-27&amp;quot;,&amp;quot;date&amp;quot;:&amp;quot;2012-07-01&amp;quot;,&amp;quot;value&amp;quot;:&amp;quot;3.10599&amp;quot;}]}}" </code></pre> <p>My question is how do I access one of the key value pairs? Do I need to parse it in javascript? Is there a way to do this through dot notation?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload