Press ESC to close

Swift JSON Veri Çekmek

Json veriler büyük her projede olan tiplerdir. Bir servisden veri çekerken json olarak çekeriz. Bu yüzden her dilde Json verilerin büyük öneme sahiptir. Daha önce ki yazılarımızda C# ile nasıl veri çekeceğimizi görmüştük. Bu yazımda ise Swift ile nasıl Json verilerin çekileceğinden bahsedeceğim. Aslında internette bir sürü kaynak var. Türkçe pek fazla kaynak olmasa da İngilizce Json veri çekmenin bir sürü yolu var. Bu yollar genellikle fazlasıyla uzatılmış. Youtube’da ise Kerim Çağlar’ın anlatmış olduğu güzel bir video var. Dilerseniz de buradan ulaşabilirsiniz. Ben ise video izlemek için müsait olmayanlara ve kendim için blog yazıyorum.

İlk olarak Json verileri çekeceğimiz URL’i belirlememiz gerekiyor. Bu Url bizim için önemlidir. Doğruluğunu ve çalıştığını kontrol edelim. Ben bu yazı da örnek olması için ve sizinde rahat bir şekilde kullanabilmeniz için burada ki  verileri çekeceğim. Bu Url’i Url tipine dönüştürmemiz gerekiyor. Ardından dikkat etmemiz gereken şey ise url’in http ve https tipinde olup olmadıklarıdır. Çünkü http güvensizdir ve bunun için info.plist dosyasında izinler ayarlamınız gerekiyor.  Bu izin App Transport Security Settings olacak. Bu ayarlamaları yaptıktan sonra ise veri çekme işlemlerini yapabiliriz. gelen veri olarak bir değişken tanımlıyoruz. Ardından bu değişkene Data fonksiyonunu kullanarak vermiş olduğumuz Url’in içerisinde ki verileri koyuyoruz. Sonrasında ise json verileri bir modelin içerisine atamak için JsonDecoder tipinde bir değişken oluşturuyoruz.

let url = URL(string:"https://jsonplaceholder.typicode.com/posts")!
let gelenData = try! Data(contentsOf:url)
var jsonDecoder = JSONDecoder()

Buraya kadar işlemlerimiz çok basitti. Şimdi ise gelen verileri bir model içerisine almamız gerekiyor. Bunun için bir sınıf oluşturmalıyız. Projemizin üzerine gelip Veri adından ben bir swift dosyası oluşturuyorum. Sonrasında ise bu dosyanın içerisine gelen verinin biçiminde bir yapı oluşturmamız gerekiyor. Gelecek olan verilere baktığımızda 4 adet olduğunu ve bunlardan ikisinin integer ikisinin ise string tipinde olduğunu görüyoruz. Bunlara göre bir yapı oluşturuyoruz. Bunun için yapının Codable protokolünde olmasına dikkat edin.

import Foundation
struct Veriler:Codable {
    var userId:Int
    var id:Int
    var title:String
    var body:String 
    
}

Şimdi ise verileri oluşturmuş olduğumuz yapıya JsonDecoder ise dönüştürüyoruz. En son işlem olarak ise bu verilerin ilkini yazdırıyoruz.

let veriler = try? jsonDecoder.decode([Veriler].self, from: gelenData)
        
        dump(veriler?.first)

Aşağıda görmüş olduğunuz gibi veriler böyle gözükmektedir.

Sorularınız olursa mail veya yorum atarak bana ulaşabilirsiniz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir