Thursday, July 14, 2016

JSON Parsing with Swift 2

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, JSONObjectWithDatais 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