mirror of
https://github.com/aljazceru/cryptoanarchywiki.github.io.git
synced 2025-12-17 05:04:21 +01:00
105 lines
6.2 KiB
HTML
105 lines
6.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<link rel="shortcut icon" href="/img/favicon.ico" />
|
|
<title> Parsing JSON with Ruby </title>
|
|
|
|
<!-- syntax highlighting CSS -->
|
|
<link rel="stylesheet" href="/css/syntax.css">
|
|
|
|
<!-- Bootstrap core CSS -->
|
|
<link href="/css/bootstrap.min.css" rel="stylesheet">
|
|
|
|
<!-- Fonts -->
|
|
<link href="//fonts.googleapis.com/css?family=Roboto+Condensed:400,300italic,300,400italic,700&subset=latin,latin-ext" rel="stylesheet" type="text/css">
|
|
|
|
<!-- Custom CSS -->
|
|
<link rel="stylesheet" href="/css/main.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div class="container">
|
|
<div class="col-sm-3">
|
|
<img id="about" src="/img/avatar.jpg" height="75px" width="75px" />
|
|
<h1 class="author-name">Agus Makmun</h1>
|
|
|
|
<div id="about">
|
|
I am freelance developer. Currently doing more in backend, actually in Python and Django.
|
|
</div>
|
|
|
|
<hr />
|
|
<strong>Navigation</strong><br />
|
|
» <a href="">Home</a> <br />
|
|
|
|
» <a class="about" href="/about/">About Me</a><br />
|
|
|
|
» <a class="about" href="https://github.com/agusmakmun">Github</a><br />
|
|
|
|
» <a class="about" href="/sitemap.xml">XML Sitemap</a><br />
|
|
|
|
</div>
|
|
|
|
<div class="col-sm-8 col-offset-1">
|
|
<h1>Parsing JSON with Ruby</h1>
|
|
<span class="time">23 Dec 2013</span>
|
|
|
|
<div class="content">
|
|
<div class="post"><p>Parsing JSON with Ruby is actually extremely easy. All you have to do is have the json gem installed (<code class="highlighter-rouge">gem install json</code>) and call the <code class="highlighter-rouge">JSON.parse</code> method on the JSON data to convert it to ruby hashes. If you look at this small program here, you can see how I have implemented parsing JSON in Ruby.</p>
|
|
|
|
<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="c1">#!/usr/bin/env ruby</span>
|
|
|
|
<span class="nb">require</span> <span class="s1">'json'</span>
|
|
<span class="nb">require</span> <span class="s1">'net/http'</span>
|
|
<span class="nb">require</span> <span class="s1">'libnotify'</span>
|
|
|
|
<span class="k">def</span> <span class="nf">parsejson</span>
|
|
<span class="n">file</span> <span class="o">=</span> <span class="s2">"http://api.openweathermap.org/data/2.5/find?q=London&mode=json"</span>
|
|
<span class="n">response</span> <span class="o">=</span> <span class="no">Net</span><span class="o">::</span><span class="no">HTTP</span><span class="p">.</span><span class="nf">get_response</span><span class="p">(</span><span class="no">URI</span><span class="p">.</span><span class="nf">parse</span><span class="p">(</span><span class="n">file</span><span class="p">))</span>
|
|
<span class="n">weatherjson</span> <span class="o">=</span> <span class="n">response</span><span class="p">.</span><span class="nf">body</span>
|
|
<span class="n">actual</span> <span class="o">=</span> <span class="no">JSON</span><span class="p">.</span><span class="nf">parse</span><span class="p">(</span><span class="n">weatherjson</span><span class="p">)</span>
|
|
|
|
<span class="c1"># check for errors</span>
|
|
<span class="k">if</span> <span class="n">actual</span><span class="p">.</span><span class="nf">has_key?</span> <span class="s1">'Error'</span>
|
|
<span class="k">raise</span> <span class="s2">"error with the url"</span>
|
|
<span class="k">end</span>
|
|
|
|
<span class="n">results</span> <span class="o">=</span> <span class="p">[]</span>
|
|
|
|
<span class="n">actual</span><span class="p">[</span><span class="s2">"list"</span><span class="p">].</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">listitem</span><span class="o">|</span>
|
|
<span class="n">weather</span> <span class="o">=</span> <span class="n">listitem</span><span class="p">[</span><span class="s2">"weather"</span><span class="p">]</span>
|
|
<span class="n">weather</span><span class="p">.</span><span class="nf">each</span> <span class="k">do</span> <span class="o">|</span><span class="n">weath</span><span class="o">|</span>
|
|
<span class="n">results</span><span class="p">.</span><span class="nf">push</span><span class="p">(</span><span class="n">weath</span><span class="p">[</span><span class="s2">"description"</span><span class="p">])</span>
|
|
<span class="k">end</span>
|
|
<span class="n">main</span> <span class="o">=</span> <span class="n">listitem</span><span class="p">[</span><span class="s2">"main"</span><span class="p">]</span>
|
|
<span class="n">temp</span> <span class="o">=</span> <span class="n">main</span><span class="p">[</span><span class="s2">"temp"</span><span class="p">]</span> <span class="o">-</span> <span class="mi">273</span><span class="o">.</span><span class="mi">15</span>
|
|
<span class="n">results</span><span class="p">.</span><span class="nf">push</span> <span class="p">(</span><span class="s2">"%.2f"</span> <span class="o">%</span> <span class="n">temp</span><span class="p">)</span>
|
|
<span class="k">end</span>
|
|
|
|
<span class="k">return</span> <span class="n">results</span>
|
|
<span class="k">end</span></code></pre></figure>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<footer>
|
|
© Agus Makmun
|
|
|
|
- <a href="https://github.com/agusmakmun">https://github.com/agusmakmun</a> - Powered by Jekyll.
|
|
|
|
</footer>
|
|
</div><!-- end /.col-sm-8 -->
|
|
</div><!-- end /.container -->
|
|
|
|
<!-- Bootstrap core JavaScript
|
|
================================================== -->
|
|
<!-- Placed at the end of the document so the pages load faster -->
|
|
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
|
|
<script src="js/bootstrap.min.js"></script>
|
|
</body>
|
|
</html>
|