Skip to main content

Parse JSON Data with GET Method Using JsonDecoder in iOS

Parse JSON Data(GET Method) in UITableViewCell Using JsonDecoder Swift 4 & Xcode 9


1) -- ViewController Class

First Create a new Project (ParseDataGETMethod) after make a struct (GetJsonData)
type data parameter


import UIKit

struct GetJsonData:Decodable {
    let name: String
    let capital: String
    let alpha2Code: String
    let alpha3Code: String
    let region: String
    let subregion: String
    
}
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    var arrData = [GetJsonData]()
    @IBOutlet var tableView: UITableView!
    override func viewDidLoad() {
        super.viewDidLoad()
        getJSONData()
    }
    func getJSONData(){
        let url = URL(string: "https://restcountries.eu/rest/v2/all")
        let session = URLSession.shared
        session.dataTask(with: url!) { (data, response, error) in
            do{
                if error == nil {
                    self.arrData = try JSONDecoder().decode([GetJsonData].self, from: data!)
                    for mainarr in self.arrData{
                       // print(mainarr.name, ":", mainarr.capital, "-", mainarr.alpha2Code )
                        DispatchQueue.main.sync {
                            self.tableView.reloadData()
                        }
                    }
                }
            }catch{
                print("Error in JSON Data")
            }
            
        }.resume()
    }
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.arrData.count
    }
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell:tableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell") as! tableViewCell
        cell.lblname.text = "Name: \(arrData[indexPath.row].name)"
        cell.lblcapital.text = "Capital: \(arrData[indexPath.row].capital)"
        return cell
    }
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let detail:DetailViewController = self.storyboard?.instantiateViewController(withIdentifier: "detail") as! DetailViewController
        detail.strregion = "Region:- \(arrData[indexPath.row].region)"
        detail.strsubregion = " SubRegion:- \(arrData[indexPath.row].subregion)"
        detail.stralpha2 = "Alpha2:-\(arrData[indexPath.row].alpha2Code)"
        detail.stralpha3 = "Aipha3:- \(arrData[indexPath.row].alpha3Code)"
        self.navigationController?.pushViewController(detail, animated: true)
        
        
    }
    
}

Parse JSON Data(GET Method)


2) ---

import UIKit

class tableViewCell: UITableViewCell {
    
    @IBOutlet var lblname: UILabel!
    @IBOutlet var lblcapital: UILabel!
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

Output:-



Parse JSON Data(GET Method)



3)----

import UIKit

class DetailViewController: UIViewController {

    @IBOutlet var alpha2: UILabel!
    @IBOutlet var alpha3: UILabel!
    @IBOutlet var subregion: UILabel!
    @IBOutlet var region: UILabel!
    var strregion = ""
    var strsubregion = ""
    var stralpha2 = ""
    var stralpha3 = ""
    
    override func viewDidLoad() {
        super.viewDidLoad()
        alpha2.text = stralpha2
        alpha3.text = stralpha3
        region.text = strregion
        subregion.text = strsubregion
    }

}



Output:-



Parse JSON Data(GET Method)

Comments

Popular posts from this blog

How Create Animated Circle Progress Bar iOS 11 Swift 4

Animated Circle Progress Bar iOS 11 Swift 4


With MBCircularProgressBar - https://github.com/MatiBot/MBCircularProgressBar


A circular, animatable & highly customizable progress bar from the Interface Builder Swift, Using pod fite MBCircularProgressBar Installation Cocoapods terminal.

pod "MBCircularProgressBar"

That - A Simple Steps to installed pod file -        Open terminal       Command on terminal go to project folder Cd path       set your project path on terminal.       command : pod init       open pod file - open -e podfile       added in pod file with in : pod "MBCircularProgressBar"       Command : Pod install       Close project of Xcode       open your Project from terminals       Command : open PodDemos.xcworkspace After opern StoryBoard and Now drag a UIView over the viewController in storyboard

Or set UIView Constraint width, height or verticle or horzentail space and set a class MBCircularProgressBarView in StoryBoard. Open Atribute inspector and cu…

Facebook Login - Facebook Authentication and Cocoapods

Create a new application facebook login and authentication a facebook user using their iOS SDK with Cocoapods. Below are the steps in which we'll be following: First Getting Started guide from Facebook's iOS SDK Documentation Create a new iOS project Swift


Open facebook Developer Account and create new App after go to setting and click basic -> add platform ios
https://developers.facebook.com/docs/ios/getting-started
https://developers.facebook.com/ Then add Bundle id your ios project like com.xxxx, Configuring Facebook with Bundle ID Then go ahead Download facebook sdk for ios other wise install pod file your project.
Go ahead to open terminal and go ahead your project folder.

Got create podfile -> pod init
Open podfile -> open podfile Paste ->  pod 'FBSDKCoreKit' 
               pod 'FBSDKShareKit' 
               pod 'FBSDKLoginKit' podfile and save

Then go to terminal or install podfiles -> pod Install
Like

Enabling Facebook's Authentication Mech…

Core Data With Swift 4.0 Tutorial

Core Data - Core Data is a framework that you use to manage the data model layer objects or instance Context in your application. It provides generalized and automated data stores solutions to common tasks associated with object life cycle and object graph management, including persistence.
Completely Tutorial for Swift 4 and iOS 11. Gating Start Goto Xcode and create New iOS Project on single view. Project Name CoreDataSwift or Checked Use Core Data

On click Main.Storyboard in Interface builder click on project navigation Editor - Embed In - Navigation controller.



Then After click on Navigation ViewController and next Drag TableView in to ViewController.


Make TableView viewcontroller Outlet Delegate, DataSource and import CoreData

import UIKit import CoreData
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { overridefunc viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } overridefunc didReceiveMem…