Swift Academy · पाठ

Codable के अनुरूप बनाना

प्रकारों को अपने-आप एन्कोड और डिकोड होने योग्य बनाइए।

पाठ 1, कुल 4 में से13 चरण

Codable के अनुरूप बनाना, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Codable क्या है

Codable, Encodable & Decodable का प्रकार उपनाम है। जब कोई प्रकार इसके अनुरूप होता है, तो Swift आवृत्तियों को बाहरी डेटा (जैसे JSON) में बदल सकता है और फिर से बना सकता है — इसके लिए हाथ से पार्स करने वाला कोड लिखने की आवश्यकता नहीं होती।

import Foundation

struct Book: Codable {
    var title: String
    var pages: Int
}

print("Book conforms to Codable")

स्वचालित संश्लेषण

यदि हर संग्रहीत प्रॉपर्टी स्वयं Codable है, तो कंपाइलर आपके लिए एन्कोडिंग और डिकोडिंग का तर्क अपने-आप तैयार कर देता है। आपको केवल प्रॉपर्टी की सूची लिखनी होती है — Swift बाकी काम भर देता है।

import Foundation

struct User: Codable {
    var name: String
    var age: Int
    var isActive: Bool
}

let u = User(name: "Ada", age: 36, isActive: true)
print(u)

JSON डेटा में एन्कोड करना

किसी Codable मान को JSONEncoder को दिया जा सकता है, जो एक Data ब्लॉब तैयार करता है। JSON टेक्स्ट देखने के लिए उस Data को String में बदलें।

import Foundation

struct User: Codable {
    var name: String
    var age: Int
}

let u = User(name: "Ada", age: 36)
let data = try JSONEncoder().encode(u)
print(String(data: data, encoding: .utf8)!)

JSON डेटा से डिकोड करना

इसके विपरीत प्रक्रिया के लिए JSONDecoder का उपयोग होता है। उसे लक्ष्य प्रकार और मूल Data दें, और वह पूरी तरह प्रकारयुक्त Swift मान फिर से बना देगा।

import Foundation

struct User: Codable {
    var name: String
    var age: Int
}

let json = "{\"name\":\"Ada\",\"age\":36}"
let data = json.data(using: .utf8)!
let u = try JSONDecoder().decode(User.self, from: data)
print(u.name, u.age)

किसी मान का राउंड-ट्रिप

एन्कोड करने के बाद डिकोड करने पर वही समान मान वापस मिलना चाहिए। यह राउंड-ट्रिप यह पुष्टि करने का तेज़ तरीका है कि किसी प्रकार की Codable अनुरूपता अपेक्षा के अनुसार काम कर रही है।

import Foundation

struct Point: Codable {
    var x: Int
    var y: Int
}

let p = Point(x: 3, y: 7)
let data = try JSONEncoder().encode(p)
let back = try JSONDecoder().decode(Point.self, from: data)
print(back.x, back.y)

केवल Encodable

आप केवल एक पक्ष के अनुरूप भी हो सकते हैं। Encodable का अर्थ है कि किसी प्रकार को डेटा में लिखा जा सकता है, लेकिन वापस पढ़ा नहीं जा सकता — यह उन प्रतिक्रिया मॉडल के लिए उपयोगी है जिन्हें आपको कभी पार्स नहीं करना होता।

import Foundation

struct Receipt: Encodable {
    var item: String
    var total: Double
}

let r = Receipt(item: "Coffee", total: 4.5)
let data = try JSONEncoder().encode(r)
print(String(data: data, encoding: .utf8)!)

केवल Decodable

इसी तरह, Decodable किसी प्रकार को बाहरी डेटा से बनाने की सुविधा देता है, बिना उसे एन्कोड करने योग्य बनाए। यह केवल पढ़े जाने वाले API पेलोड के लिए उपयोगी है, जिनका आप सिर्फ़ उपयोग करते हैं।

import Foundation

struct Config: Decodable {
    var version: Int
    var debug: Bool
}

let json = "{\"version\":2,\"debug\":true}"
let data = json.data(using: .utf8)!
let c = try JSONDecoder().decode(Config.self, from: data)
print(c.version, c.debug)

समर्थित प्रॉपर्टी प्रकार

String, Int, Double, Bool, Date, Data, URL जैसे मानक लाइब्रेरी प्रकार, साथ ही Codable तत्वों वाली सारणियाँ और डिक्शनरी, पहले से ही Codable होते हैं।

import Foundation

struct Profile: Codable {
    var name: String
    var tags: [String]
    var scores: [String: Int]
}

let p = Profile(name: "Sam", tags: ["a", "b"], scores: ["math": 90])
let data = try JSONEncoder().encode(p)
print(String(data: data, encoding: .utf8)!)

एनम भी अनुरूप हो सकते हैं

रॉ मानों वाला एनम, जैसे String या Int, अपने-आप Codable बन जाता है। JSON में यह अपने रॉ मान के रूप में एन्कोड होता है।

import Foundation

enum Status: String, Codable {
    case active, paused, done
}

struct Task: Codable {
    var title: String
    var status: Status
}

let t = Task(title: "Ship", status: .active)
let data = try JSONEncoder().encode(t)
print(String(data: data, encoding: .utf8)!)

किसी प्रॉपर्टी का Codable होना आवश्यक है

संश्लेषण तभी काम करता है जब सभी संग्रहीत प्रॉपर्टी Codable हों। यदि किसी प्रॉपर्टी के रूप में कस्टम प्रकार का उपयोग किया गया है, तो उस प्रकार को भी अनुरूप होना चाहिए — अन्यथा कंपाइलर संश्लेषण करने से मना कर देता है।

import Foundation

struct Address: Codable {
    var city: String
}

struct Person: Codable {
    var name: String
    var address: Address
}

let p = Person(name: "Lee", address: Address(city: "Rome"))
print(try JSONEncoder().encode(p).count, "bytes")

Codable क्यों महत्वपूर्ण है

Codable हाथ से लिखे जाने वाले सीरियलाइज़ेशन के अनावश्यक कोड को हटा देता है, प्रकार को सत्य का एकमात्र स्रोत बनाए रखता है और कंपाइल के समय असंगतियों का पता लगा लेता है। Swift ऐप्स में डेटा अंदर लाने और बाहर भेजने का यह मानक तरीका है।

import Foundation

struct Settings: Codable {
    var theme: String
    var fontSize: Int
}

let s = Settings(theme: "dark", fontSize: 14)
let data = try JSONEncoder().encode(s)
let back = try JSONDecoder().decode(Settings.self, from: data)
print(back.theme, back.fontSize)

त्वरित जाँच: Codable के अनुरूप होना

अनुरूपता के बारे में आपने जो सीखा है, उसका परीक्षण करें।

पुनरावलोकन: Codable के अनुरूप होना

आपने Swift में सीरियलाइज़ेशन की बुनियाद सीखी:

  • Codable = Encodable & Decodable।
  • जब सभी प्रॉपर्टी Codable हों, तो अनुरूपता अपने-आप तैयार हो जाती है।
  • JSONEncoder Data तैयार करता है; JSONDecoder मान को फिर से बनाता है।
  • मानक प्रकार, रॉ-मान वाले एनम और नेस्टेड Codable प्रकार सभी समर्थित हैं।
शुरुआत निःशुल्क

एआई शिक्षक के साथ Swift सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
122
पाठ
409

अक्सर पूछे जाने वाले प्रश्न

क्या “Codable के अनुरूप बनाना” पाठ निःशुल्क है?

हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “Codable के अनुरूप बनाना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Codable के अनुरूप बनाना” में मैं क्या सीखूँगा?

प्रकारों को अपने-आप एन्कोड और डिकोड होने योग्य बनाइए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“Codable के अनुरूप बनाना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Codable के अनुरूप बनाना
  2. JSONEncoder से एन्कोडिंग
  3. JSONDecoder से डिकोडिंग
  4. ऑप्शनल और नेस्टेड प्रकार सँभालना
← Swift Academy पर वापस जाएँ