كل شيء عن Codable Protocol الجديد في Swift 4 - تحكم بملفات الـ JSON كما تريد

Ammar AlTahhanمنذ 3 أشهر

بسم الله الرحمن الرحيم

مقدمة:                                

في هذا الموضوع، سنتطرق لأحد أهم التحديثات التي قدمتها Apple مع الـ Xcode 9 والـ Swift4

بروتوكول Codable ? الذي سيستبدل الNSCoding القديم سيء الذكر، يقوم بجعل الـ Data model لديك Encodable, Decodable لتتكامل بشكل كامل مع أي بيانات خارجية كالـ JSON

الآن أصبح بإمكانك تحويل البيانات من والى الـ JSON بسطر واحد ?

 

التطبيق:                                

لنأخذ مثال على Structure بإسم Movie، هنا سأقوم بتعريف الـ Structure ك Codable لنستطيع تحويله من والى الـ JSON بسهولة 


struct Movie: Codable {
    enum MovieGenere: String, Codable {
        case horror, skifi, comedy, adventure, animation
    }
    
    var name : String
    var moviesGenere : [MovieGenere]
    var rating : Int
}

?

لنقوم بانشاء أوبجكت من هذا الـ Structure للتوضيح

مثلاً:

 (let upMovie = Movie(name: "Up", moviesGenere: [.comedy , .adventure, .animation], rating : 8

في هذا المثال لدينا فيلم باسم "Up" من نوع comedy, adventure, animation وتقييمه 8/10

 

الآن لنرى كيف نحول هذا الأوبجكت إلى بيانات JSON

 

Encode


let jsonData = try? JSONEncoder().encode(upMovie)
let jsonString = String(data: jsonData, encoding: .utf8)
print("JSON String : " + jsonString!)

Voala

 الـ ()JSONEncoder سيقوم بتحويل الأوبجكت الى JSON Data

وسيكون الناتج كالتالي

{
  "name": "Up",
  "moviesGenere": [
    "comedy",
    "adventure",
    "animation"
  ],
  "rating": 4
}

 

Decode

بنفس الطريقة، سنستعمل الـ ()JSONDecoder لتحويل البيانات من JSON الى اوبجكت من الـ Movie


let upMovie = try? JSONDecoder().decode(Movie.self, from: jsonData)
print("Name : \(upMovie.name)")
print("Rating : \(upMovie.rating)")

بفك ملف الـ JSON سنحصل على الأوبجكت upMovie وبامكاننا الوصول لخصائصه واستعمالها كما نشاء

النتيجة ستكون كالتالي

Name : Up
Rating : 4

 

 

إلى هنا نصل الى ختام موضوعنا

أستودعكم الله الذي لا تضيع ودائعه

كلمات دليلية:
4
إعجاب
246
مشاهدات
0
مشاركة
0
متابع
متميز
محتوى رهيب

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !