We’ll look at how to parse a JSON array that we could use to display a list of items in a table view. More spefically, we’ll use the following JSON (copied and tweaked from David Owens II) to display a list of blog titles in our app.
Assuming we’ve made a request and received the JSON above, we just need to ask NSJSONSerialization to give us a JSON object, and then pull out the “blogs” and “name” keys. First, take a look at the full code, then we’ll break it down and explain it in smaller pieces:
Let’s break down what’s actually happening here.
First of all, everything is surrounded in a do/catch block since
JSONObjectWithData:options:
may throw an error. If you’re familiar with Objective-C, you’ll notice that we don’t pass in an NSError pointer here – instead, JSONObjectWithData
is marked with throws
, meaning it may throw an error. The error that we catch (which is called error
by default) replaces the NSError
pointer from Objective-C.
Let’s look at the next line (with a bit of commentary added):
Here, we’re attempting to take
"blogs"
from the JSON, cast it to an array of dictionaries ([[String: AnyObject]]
), and assign it to a constant called blogs
. If all of that is successful, our if
block will execute. (Aside: this if let
syntax is called optional binding, and you need to understand it if you’re writing Swift. You can read about it in The Swift Programming Language.)
Moving on:
Here, we’re iterating through our array of
blogs
, and we know that blog
is a dictionary of type [String: AnyObject]
based on the type of our blogs
array. Inside the for
loop, we’re doing optional binding again to grab the name of the blog as a String, then appending it to our names
array.
To read original article refer this link
No comments:
Post a Comment