docs
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||
<!DOCTYPE html> <html lang="en"> <head> <title>README Reference</title> <link rel="stylesheet" type="text/css" href="css/jazzy.css" /> <link rel="stylesheet" type="text/css" href="css/highlight.css" /> <meta charset="utf-8"> <script src="js/jquery.min.js" defer></script> <script src="js/jazzy.js" defer></script> </head> <body> <a title="README Reference"></a> <header class="header"> <p class="header-col header-col--primary"> <a class="header-link" href="index.html"> Arrow Docs </a> (72% documented) </p> <p class="header-col header-col--secondary"> <a class="header-link" href="https://github.com/s4cha/Arrow"> <img class="header-icon" src="img/gh.png"/> View on GitHub </a> </p> </header> <p class="breadcrumbs"> <a class="breadcrumb" href="index.html">Arrow Reference</a> <img class="carat" src="img/carat.png" /> README Reference </p> <div class="content-wrapper"> <nav class="navigation"> <ul class="nav-groups"> <li class="nav-group-name"> <a class="nav-group-name-link" href="Guides.html">Guides</a> <ul class="nav-group-tasks"> <li class="nav-group-task"> <a class="nav-group-task-link" href="readme.html">README</a> </li> </ul> </li> <li class="nav-group-name"> <a class="nav-group-name-link" href="Classes.html">Classes</a> <ul class="nav-group-tasks"> <li class="nav-group-task"> <a class="nav-group-task-link" href="Classes/Arrow.html">Arrow</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Classes/JSON.html">JSON</a> </li> </ul> </li> <li class="nav-group-name"> <a class="nav-group-name-link" href="Functions.html">Functions</a> <ul class="nav-group-tasks"> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions.html#/s:ZF5Arrowoi3lssFTRCSo6NSDateGSqCS_4JSON__T_"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions.html#/s:ZF5Arrowoi3lssFTRGSqCSo6NSDate_GSqCS_4JSON__T_"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions.html#/s:ZF5Arrowoi3lssFTRCSo5NSURLGSqCS_4JSON__T_"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions.html#/s:ZF5Arrowoi3lssFTRGSqCSo5NSURL_GSqCS_4JSON__T_"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> <li class="nav-group-task"> <a class="nav-group-task-link" href="Functions/<--(_:_:).html"><--(_:_:)</a> </li> </ul> </li> <li class="nav-group-name"> <a class="nav-group-name-link" href="Protocols.html">Protocols</a> <ul class="nav-group-tasks"> <li class="nav-group-task"> <a class="nav-group-task-link" href="Protocols/ArrowParsable.html">ArrowParsable</a> </li> </ul> </li> </ul> </nav> <article class="main-content"> <section class="section"> <div class="section-content"> <a href='#arrow-em-elegant-json-parsing-in-swift-em' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h1 id='arrow-em-elegant-json-parsing-in-swift-em'>Arrow 🏹 - <em>Elegant JSON Parsing in Swift</em></h1> <p><a href="https://developer.apple.com/swift"><img src="https://img.shields.io/badge/language-swift2-f48041.svg?style=flat" alt="Language: Swift 2"></a> <img src="https://img.shields.io/badge/platform-iOS%208%2B-blue.svg?style=flat" alt="Platform: iOS 8+"> <a href="https://github.com/Carthage/Carthage"><img src="https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat" alt="Carthage compatible"></a> <a href="https://cocoapods.org"><img src="https://img.shields.io/badge/Cocoapods-compatible-4BC51D.svg?style=flat" alt="Cocoapods compatible"></a> <a href="https://www.bitrise.io/app/ffd8fe5df34624ff"><img src="https://www.bitrise.io/app/ffd8fe5df34624ff.svg?token=IahWn-RB5hTWzvBbcIktsQ" alt="Build Status"></a> <a href="https://codebeat.co/projects/github-com-s4cha-arrow"><img src="https://codebeat.co/badges/2acb8664-02f7-463d-9de2-2be9e87ba17c" alt="codebeat badge"></a> <a href="https://github.com/s4cha/Arrow/blob/master/LICENSE"><img src="http://img.shields.io/badge/license-MIT-lightgrey.svg?style=flat" alt="License: MIT"></a> <a href=""><img src="https://img.shields.io/badge/release-2.0-blue.svg" alt="Release version"></a></p> <p><a href="#reason">Reason</a> - <a href="#example">Example</a> - <a href="#installation">Installation</a></p> <pre class="highlight swift"><code><span class="n">identifier</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"id"</span><span class="p">]</span> <span class="n">name</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"name"</span><span class="p">]</span> <span class="n">stats</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"stats"</span><span class="p">]</span> </code></pre> <a href='#reason' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='reason'>Reason</h2> <a href='#why' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='why'>Why</h3> <p>Because parsing JSON in Swift is full of <strong>unecessary if lets, obvious casts and nil-checks</strong><br> <em>There must be a better way</em></p> <a href='#how' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='how'>How</h2> <p>By using a simple arrow operator that takes care of the boilerplate code for us.<br> Json mapping code becomes <strong>concise</strong> and <strong>maintainable</strong> ❤️</p> <a href='#what' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='what'>What</h2> <ul> <li>[x] Simple & Lightweight (~200lines)</li> <li>[x] Pure Swift</li> <li>[x] Leaves your models clean</li> <li>[x] Implicitly casts JSON values to the right types in your model</li> <li>[x] Automatic NSDate, NSURL, Enum, Custom model Parsing</li> <li>[x] Converts string values to numeric types in your model</li> <li>[x] Does not crash if JSON key is not there, nor returns nil, it simply doesn’t do anything</li> <li>[x] No overly complex obscure functional chaining operator overloading voodoo magic ?==:>>><> 😅</li> </ul> <a href='#example' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='example'>Example</h2> <a href='#swift-model' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='swift-model'>Swift Model</h3> <pre class="highlight swift"><code><span class="kd">struct</span> <span class="kt">Profile</span> <span class="p">{</span> <span class="k">var</span> <span class="nv">identifier</span> <span class="o">=</span> <span class="mi">0</span> <span class="k">var</span> <span class="nv">name</span> <span class="o">=</span> <span class="s">""</span> <span class="k">var</span> <span class="nv">link</span><span class="p">:</span><span class="kt">NSURL</span><span class="p">?</span> <span class="k">var</span> <span class="nv">weekday</span><span class="p">:</span><span class="kt">WeekDay</span> <span class="o">=</span> <span class="o">.</span><span class="kt">Monday</span> <span class="k">var</span> <span class="nv">stats</span> <span class="o">=</span> <span class="kt">Stats</span><span class="p">()</span> <span class="k">var</span> <span class="nv">phoneNumbers</span> <span class="o">=</span> <span class="p">[</span><span class="kt">PhoneNumber</span><span class="p">]()</span> <span class="p">}</span> </code></pre> <a href='#json-file' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='json-file'>JSON File</h3> <pre class="highlight json"><code><span class="p">{</span><span class="w"> </span><span class="nt">"id"</span><span class="p">:</span><span class="w"> </span><span class="mi">15678</span><span class="p">,</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"John Doe"</span><span class="p">,</span><span class="w"> </span><span class="nt">"link"</span><span class="p">:</span><span class="w"> </span><span class="s2">"https://apple.com/steve"</span><span class="p">,</span><span class="w"> </span><span class="nt">"weekdayInt"</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="nt">"stats"</span><span class="p">:</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"numberOfFriends"</span><span class="p">:</span><span class="w"> </span><span class="mi">163</span><span class="p">,</span><span class="w"> </span><span class="nt">"numberOfFans"</span><span class="p">:</span><span class="w"> </span><span class="mi">10987</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="nt">"phoneNumbers"</span><span class="p">:</span><span class="w"> </span><span class="p">[{</span><span class="w"> </span><span class="nt">"label"</span><span class="p">:</span><span class="w"> </span><span class="s2">"house"</span><span class="p">,</span><span class="w"> </span><span class="nt">"number"</span><span class="p">:</span><span class="w"> </span><span class="s2">"9809876545"</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"label"</span><span class="p">:</span><span class="w"> </span><span class="s2">"cell"</span><span class="p">,</span><span class="w"> </span><span class="nt">"number"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0908070656"</span><span class="w"> </span><span class="p">},</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"label"</span><span class="p">:</span><span class="w"> </span><span class="s2">"work"</span><span class="p">,</span><span class="w"> </span><span class="nt">"number"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0916570656"</span><span class="w"> </span><span class="p">}]</span><span class="w"> </span><span class="p">}</span><span class="w"> </span></code></pre> <a href='#before-chaos' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='before-chaos'>Before (Chaos)</h3> <pre class="highlight swift"><code><span class="k">var</span> <span class="nv">profile</span> <span class="o">=</span> <span class="kt">Profile</span><span class="p">()</span> <span class="c1">// Int</span> <span class="k">if</span> <span class="k">let</span> <span class="nv">id</span> <span class="o">=</span> <span class="n">json</span><span class="p">[</span><span class="s">"id"</span><span class="p">]</span> <span class="k">as?</span> <span class="kt">Int</span> <span class="p">{</span> <span class="n">profile</span><span class="o">.</span><span class="n">identifier</span> <span class="o">=</span> <span class="n">id</span> <span class="p">}</span> <span class="c1">// String</span> <span class="k">if</span> <span class="k">let</span> <span class="nv">name</span> <span class="o">=</span> <span class="n">json</span><span class="p">[</span><span class="s">"name"</span><span class="p">]</span> <span class="k">as?</span> <span class="kt">String</span> <span class="p">{</span> <span class="n">profile</span><span class="o">.</span><span class="n">name</span> <span class="o">=</span> <span class="n">name</span> <span class="p">}</span> <span class="c1">// NSURL</span> <span class="k">if</span> <span class="k">let</span> <span class="nv">link</span> <span class="o">=</span> <span class="n">json</span><span class="p">[</span><span class="s">"link"</span><span class="p">]</span> <span class="k">as?</span> <span class="kt">String</span><span class="p">,</span> <span class="n">url</span> <span class="o">=</span> <span class="kt">NSURL</span><span class="p">(</span><span class="nv">string</span><span class="p">:</span><span class="n">link</span><span class="p">)</span> <span class="p">{</span> <span class="n">profile</span><span class="o">.</span><span class="n">link</span> <span class="o">=</span> <span class="n">link</span> <span class="p">}</span> <span class="c1">// Enum</span> <span class="k">if</span> <span class="k">let</span> <span class="nv">weekdayInt</span> <span class="o">=</span> <span class="n">json</span><span class="p">[</span><span class="s">"weekdayInt"</span><span class="p">]</span> <span class="k">as?</span> <span class="kt">Int</span><span class="p">,</span> <span class="n">weekday</span> <span class="o">=</span> <span class="kt">WeekDay</span><span class="p">(</span><span class="nv">rawValue</span><span class="p">:</span><span class="n">weekdayInt</span><span class="p">)</span> <span class="p">{</span> <span class="n">profile</span><span class="o">.</span><span class="n">weekday</span> <span class="o">=</span> <span class="n">weekday</span> <span class="p">}</span> <span class="c1">// Custom nested object</span> <span class="k">if</span> <span class="k">let</span> <span class="nv">statsJson</span> <span class="o">=</span> <span class="n">json</span><span class="p">[</span><span class="s">"stats"</span><span class="p">]</span> <span class="k">as?</span> <span class="kt">AnyObject</span> <span class="p">{</span> <span class="k">if</span> <span class="k">let</span> <span class="nv">numberOfFans</span> <span class="o">=</span> <span class="n">statsJson</span><span class="p">[</span><span class="s">"numberOfFans"</span><span class="p">]</span> <span class="k">as?</span> <span class="kt">Int</span> <span class="p">{</span> <span class="n">profile</span><span class="o">.</span><span class="n">stats</span><span class="o">.</span><span class="n">numberOfFans</span> <span class="o">=</span> <span class="n">numberOfFans</span> <span class="p">}</span> <span class="k">if</span> <span class="k">let</span> <span class="nv">numberOfFriends</span> <span class="o">=</span> <span class="n">statsJson</span><span class="p">[</span><span class="s">"numberOfFriends"</span><span class="p">]</span> <span class="k">as?</span> <span class="kt">Int</span> <span class="p">{</span> <span class="n">profile</span><span class="o">.</span><span class="n">stats</span><span class="o">.</span><span class="n">numberOfFriends</span> <span class="o">=</span> <span class="n">numberOfFriends</span> <span class="p">}</span> <span class="p">}</span> <span class="c1">// Array of custom nested object</span> <span class="k">if</span> <span class="k">let</span> <span class="nv">pns</span> <span class="o">=</span> <span class="n">json</span><span class="p">[</span><span class="s">"phoneNumbers"</span><span class="p">]</span> <span class="k">as?</span> <span class="p">[</span><span class="kt">AnyObject</span><span class="p">]</span> <span class="p">{</span> <span class="k">for</span> <span class="n">pn</span> <span class="k">in</span> <span class="n">pns</span> <span class="p">{</span> <span class="n">phoneNumbers</span><span class="o">.</span><span class="nf">append</span><span class="p">(</span><span class="kt">PhoneNumber</span><span class="p">(</span><span class="nv">json</span><span class="p">:</span> <span class="n">pn</span><span class="p">))</span> <span class="p">}</span> <span class="p">}</span> </code></pre> <a href='#after' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='after'>After 🎉🎉🎉</h3> <pre class="highlight swift"><code><span class="kd">extension</span> <span class="kt">Profile</span><span class="p">:</span><span class="kt">ArrowParsable</span> <span class="p">{</span> <span class="k">mutating</span> <span class="kd">func</span> <span class="nf">deserialize</span><span class="p">(</span><span class="nv">json</span><span class="p">:</span> <span class="kt">JSON</span><span class="p">)</span> <span class="p">{</span> <span class="n">identifier</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"id"</span><span class="p">]</span> <span class="n">link</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"link"</span><span class="p">]</span> <span class="n">name</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"name"</span><span class="p">]</span> <span class="n">weekday</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"weekdayInt"</span><span class="p">]</span> <span class="n">stats</span> <span class="o"><-</span> <span class="n">json</span><span class="p">[</span><span class="s">"stats"</span><span class="p">]</span> <span class="n">phoneNumbers</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"phoneNumbers"</span><span class="p">]</span> <span class="p">}</span> <span class="p">}</span> </code></pre> <a href='#usage' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='usage'>Usage</h3> <pre class="highlight swift"><code><span class="k">let</span> <span class="nv">profile</span> <span class="o">=</span> <span class="kt">Profile</span><span class="p">()</span> <span class="n">profile</span><span class="o">.</span><span class="nf">deserialize</span><span class="p">(</span><span class="n">json</span><span class="p">)</span> </code></pre> <a href='#installation' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='installation'>Installation</h2> <a href='#carthage' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h4 id='carthage'>Carthage</h4> <pre class="highlight plaintext"><code>github "s4cha/Arrow" </code></pre> <a href='#cocoapods' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h4 id='cocoapods'>CocoaPods</h4> <pre class="highlight plaintext"><code>pod 'Arrow' use_frameworks! </code></pre> <a href='#manually' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h4 id='manually'>Manually</h4> <p>Simply Copy and Paste Arrow.swift in your Xcode Project :) <a href="https://github.com/s4cha/Arrow/blob/master/Arrow.swift">https://github.com/s4cha/Arrow/blob/master/Arrow.swift</a></p> <a href='#as-a-framework' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h4 id='as-a-framework'>As A Framework</h4> <p>Grab this repository and build the Framework target on the example project. Then Link against this framework.</p> <a href='#how-does-that-work' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='how-does-that-work'>How Does That Work</h2> <p>Notice earlier we typed :</p> <pre class="highlight swift"><code><span class="n">stats</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"stats"</span><span class="p">]</span> </code></pre> <p>That’s because we created and extension <q>Stats+Arrow.swift</q> enabling us to use the Arrow Operator</p> <pre class="highlight swift"><code><span class="c1">// Stats+Arrow.swift</span> <span class="kd">import</span> <span class="kt">Foundation</span> <span class="kd">extension</span> <span class="kt">Stats</span><span class="p">:</span><span class="kt">ArrowParsable</span> <span class="p">{</span> <span class="k">mutating</span> <span class="kd">func</span> <span class="nf">deserialize</span><span class="p">(</span><span class="nv">json</span><span class="p">:</span> <span class="kt">JSON</span><span class="p">)</span> <span class="p">{</span> <span class="n">numberOfFriends</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"numberOfFriends"</span><span class="p">]</span> <span class="n">numberOfFans</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"numberOfFans"</span><span class="p">]</span> <span class="p">}</span> <span class="p">}</span> </code></pre> <a href='#flexible-you-said' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='flexible-you-said'>Flexible you said</h2> <ul> <li>DO I have to use the <– for my sub models</li> <li>Nope, you could write it like so if you wanted :</li> </ul> <pre class="highlight swift"><code><span class="n">stats</span><span class="o">.</span><span class="n">numberOfFriends</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"stats.numberOfFriends"</span><span class="p">]</span> <span class="n">stats</span><span class="o">.</span><span class="n">numberOfFans</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"stats.numberOfFans"</span><span class="p">]</span> </code></pre> <ul> <li>Hey I don’t want to parse NSDates in every files, do you have something for me?</li> </ul> <p>Sure, just set your date format once and you’re done.</p> <pre class="highlight swift"><code><span class="c1">// Configure NSDate Parsing</span> <span class="kt">Arrow</span><span class="o">.</span><span class="nf">setDateFormat</span><span class="p">(</span><span class="s">"yyyy-MM-dd'T'HH:mm:ssZZZZZ"</span><span class="p">)</span> <span class="kt">Arrow</span><span class="o">.</span><span class="nf">setUseTimeIntervalSinceReferenceDate</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span> <span class="c1">// Dates can be parsed form custom date format or timestamp</span> <span class="k">let</span> <span class="nv">json</span><span class="p">:</span><span class="kt">JSON</span> <span class="o">=</span> <span class="kt">JSON</span><span class="p">([</span><span class="s">"date"</span><span class="p">:</span> <span class="s">"2013-06-07T16:38:40+02:00"</span><span class="p">,</span> <span class="s">"timestamp"</span><span class="p">:</span> <span class="mi">392308720</span><span class="p">])</span> <span class="n">date1</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"date"</span><span class="p">]</span> <span class="n">date2</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"timestamp"</span><span class="p">]</span> </code></pre> <p>What if I want a Custom NSDate format for a specific key ? <code>swift createdAt <-- json["created_at"]?.dateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ") </code> Just provide it on a case per case basis ! 🎉</p> <a href='#accessing-json-values' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='accessing-json-values'>Accessing JSON values</h2> <a href='#nested-values' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='nested-values'>Nested values</h3> <pre class="highlight swift"><code><span class="n">value</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="s">"nested.nested.nested.nestedValue"</span><span class="p">]</span> </code></pre> <a href='#object-at-index' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='object-at-index'>Object at index</h3> <pre class="highlight swift"><code><span class="n">value</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="mi">12</span><span class="p">]</span> </code></pre> <a href='#combine-both' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='combine-both'>Combine both</h3> <pre class="highlight swift"><code><span class="n">value</span> <span class="o"><--</span> <span class="n">json</span><span class="p">[</span><span class="mi">1</span><span class="p">]?[</span><span class="s">"someKey"</span><span class="p">]?[</span><span class="mi">2</span><span class="p">]?[</span><span class="s">"something.other"</span><span class="p">]</span> </code></pre> <a href='#looping-on-array' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h3 id='looping-on-array'>Looping on Array</h3> <pre class="highlight swift"><code><span class="k">if</span> <span class="k">let</span> <span class="nv">collection</span> <span class="o">=</span> <span class="n">json</span><span class="o">.</span><span class="n">collection</span> <span class="p">{</span> <span class="k">for</span> <span class="n">jsonEntry</span> <span class="k">in</span> <span class="n">collection</span> <span class="p">{</span> <span class="c1">//Do something</span> <span class="p">}</span> <span class="p">}</span> </code></pre> <a href='#acknoledgments' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='acknoledgments'>Acknoledgments</h2> <p>This wouldn’t exist without <a href="https://github.com/YannickDot">YannickDot</a>, <a href="https://github.com/damien-nd">Damien-nd</a> and <a href="https://github.com/maxkonovalov">maxkonovalov</a></p> <a href='#other-repos' class='anchor' aria-hidden=true><span class="header-anchor"></span></a><h2 id='other-repos'>Other repos ❤️</h2> <p>Arrow is part of a series of lightweight libraries aiming to make developing iOS Apps a <em>breeze</em> : - Layout : <a href="https://github.com/s4cha/Stevia">Stevia</a> - Async code : <a href="https://github.com/s4cha/then">then</a> - JSON WebServices : <a href="https://github.com/s4cha/ws">ws</a></p> </div> </section> </article> </div> <section class="footer"> <p>© 2016 <a class="link" href="https://github.com/s4cha" target="_blank" rel="external">S4cha</a>. All rights reserved. (Last updated: 2016-07-09)</p> <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.7.0</a>, a <a class="link" href="http://realm.io" target="_blank" rel="external">Realm</a> project.</p> </section> </body> </div> </html>