Showing posts with label parse. Show all posts
Showing posts with label parse. Show all posts

Saturday, May 28, 2016

Parsing JSON

When parsing you will be turning the results into a dictionary of objects.
To see how to get the JSON see this post.

Example JSON
{
    "name": "Luke Skywalker", 
    "height": "172", 
    "mass": "77", 
    "hair_color": "blond", 
    "skin_color": "fair", 
    "eye_color": "blue", 
    "birth_year": "19BBY", 
    "gender": "male", 
    "homeworld": "http://swapi.co/api/planets/1/", 
    "films": [
        "http://swapi.co/api/films/6/", 
        "http://swapi.co/api/films/3/", 
        "http://swapi.co/api/films/2/", 
        "http://swapi.co/api/films/1/", 
        "http://swapi.co/api/films/7/"
    ], 
    "species": [
        "http://swapi.co/api/species/1/"
    ], 
    "vehicles": [
        "http://swapi.co/api/vehicles/14/", 
        "http://swapi.co/api/vehicles/30/"
    ], 
    "starships": [
        "http://swapi.co/api/starships/12/", 
        "http://swapi.co/api/starships/22/"
    ], 
    "created": "2014-12-09T13:50:51.644000Z", 
    "edited": "2014-12-20T21:17:56.891000Z", 
    "url": "http://swapi.co/api/people/1/"
}
Then you convert it into a dictionary:
let dict = json as! Dictionary<String, AnyObject>
So you are really dividing up the JSON like this:
Key Value
String AnyObject
{
    "name":   "Luke Skywalker",  String
    "height":   "172",  String
    "mass":   "77",  String
    "hair_color":   "blond",  String
    "skin_color":   "fair",  String
    "eye_color":   "blue",  String
    "birth_year":   "19BBY",  String
    "gender":  "male",  String
    "homeworld":  "http://swapi.co/api/planets/1/",  String
    "films": [ Array<String>
          "http://swapi.co/api/films/6/", 
          "http://swapi.co/api/films/3/", 
          "http://swapi.co/api/films/2/", 
          "http://swapi.co/api/films/1/", 
          "http://swapi.co/api/films/7/"
  ], 
    "species": [ Array<String>
          "http://swapi.co/api/species/1/"
  ], 
    "vehicles":  [ Array<String>
          "http://swapi.co/api/vehicles/14/", 
          "http://swapi.co/api/vehicles/30/"
  ], 
    "starships": [ Array<String>
          "http://swapi.co/api/starships/12/", 
          "http://swapi.co/api/starships/22/"
  ], 
    "created":  "2014-12-09T13:50:51.644000Z",  String
    "edited":  "2014-12-20T21:17:56.891000Z",  String
    "url":  "http://swapi.co/api/people/1/" String
}

To get data out of this dictionary you do something like this:
 
let dict = json as! Dictionary<String, AnyObject>
let name = dict["name"]
let height = dict["height"]

let films: Array = dict["films"] as! Array<String>
let film1 = films[0]
 

(Swift 2.2)

SwiftUI Search & Filter with Combine - Part 3 (iOS, Xcode 13, SwiftUI, 2...

In part 3 of the Searchable video series, I show you how to use Combine in #SwiftUI for the search and filter logic connected to the searcha...