كل شيء عن Codable Protocol الجديد في Swift 4 - تحكم بملفات الـ JSON كما تريد
بسم الله الرحمن الرحيم
مقدمة:
في هذا الموضوع، سنتطرق لأحد أهم التحديثات التي قدمتها 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 للتوضيح
مثلاً:
في هذا المثال لدينا فيلم باسم "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
إلى هنا نصل الى ختام موضوعنا
أستودعكم الله الذي لا تضيع ودائعه
التعليقات (0)
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !