खोज…
परिचय
कोडेबल को Xcode 9, iOS 11 और Swift 4 के साथ जोड़ा जाता है। Codable का उपयोग JSON जैसे बाहरी अभ्यावेदन के साथ आपके डेटा प्रकारों को अनुकूल और डिकोडेबल बनाने के लिए किया जाता है।
एन्कोडिंग और डिकोडिंग दोनों का समर्थन करने के लिए कोडेबल उपयोग, कोडेबल के अनुरूप घोषित करता है, जो एन्कोडेबल और डिकोडेबल प्रोटोकॉल को जोड़ता है। इस प्रक्रिया को आपके प्रकारों को कोडेबल बनाने के लिए जाना जाता है।
JSONEncoder और JSONDecoder के साथ Swift 4 में कोडेबल का उपयोग
चलो मूवी की संरचना के साथ एक उदाहरण लेते हैं, यहां हमने संरचना को कोडेबल के रूप में परिभाषित किया है। इसलिए, हम इसे आसानी से एनकोड और डीकोड कर सकते हैं।
struct Movie: Codable {
enum MovieGenere: String, Codable {
case horror, skifi, comedy, adventure, animation
}
var name : String
var moviesGenere : [MovieGenere]
var rating : Int
}
हम फिल्म से एक वस्तु बना सकते हैं जैसे:
let upMovie = Movie(name: "Up", moviesGenere: [.comedy , .adventure, .animation], rating : 4)
अपमूवी में "अप" नाम शामिल है और यह मूवीज कॉमेडी है, एडवेंचर और एनिमेशन विच में 5 में से 4 रेटिंग हैं।
सांकेतिक शब्दों में बदलना
JSONEncoder एक ऑब्जेक्ट है जो JSON ऑब्जेक्ट्स के रूप में डेटा प्रकार के इंस्टेंस को एन्कोड करता है। JSONEncoder कोडेबल ऑब्जेक्ट का समर्थन करता है।
// Encode data
let jsonEncoder = JSONEncoder()
do {
let jsonData = try jsonEncoder.encode(upMovie)
let jsonString = String(data: jsonData, encoding: .utf8)
print("JSON String : " + jsonString!)
}
catch {
}
JSONEncoder हमें JSON डेटा देगा जो JSON स्ट्रिंग को पुनः प्राप्त करने के लिए उपयोग किया जाता है।
आउटपुट स्ट्रिंग की तरह होगा:
{
"name": "Up",
"moviesGenere": [
"comedy",
"adventure",
"animation"
],
"rating": 4
}
व्याख्या करना
JSONDecoder एक ऑब्जेक्ट है जो JSON ऑब्जेक्ट्स से डेटा प्रकार के इंस्टेंस को डिकोड करता है। हम JSON स्ट्रिंग से ऑब्जेक्ट वापस प्राप्त कर सकते हैं।
do {
// Decode data to object
let jsonDecoder = JSONDecoder()
let upMovie = try jsonDecoder.decode(Movie.self, from: jsonData)
print("Rating : \(upMovie.name)")
print("Rating : \(upMovie.rating)")
}
catch {
}
JSONData को डिकोड करके हम मूवी ऑब्जेक्ट को वापस प्राप्त करेंगे। तो हम उन सभी मूल्यों को प्राप्त कर सकते हैं जो उस वस्तु में सहेजे गए हैं।
आउटपुट इस तरह होगा:
Name : Up
Rating : 4