Swift में JSON के साथ काम करें: शुरुआती के लिए पार्सिंग और सीरियलाइज़ेशन

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Swift में JSON के साथ काम करें: शुरुआती के लिए पार्सिंग और सीरियलाइज़ेशन

\n\n

JSON (JavaScript Object Notation) आधुनिक मोबाइल और वेब एप्लिकेशन में डेटा एक्सचेंज का सबसे लोकप्रिय फॉर्मेट है। अगर आप iOS या macOS के लिए Swift में डेवलपमेंट कर रहे हैं, तो JSON को पार्स और सीरियलाइज़ करना एक ज़रूरी स्किल है। इस आर्टिकल में हम JSON के साथ काम करने के सभी मुख्य तरीकों को समझेंगे: पुराने JSONSerialization से लेकर आधुनिक Codable प्रोटोकॉल तक। यह सामग्री उन शुरुआती डेवलपर्स के लिए है जिन्हें Swift की बुनियादी जानकारी है।

\n\n

JSON क्या है और Swift में इसकी ज़रूरत क्यों है?

\n\n

JSON एक टेक्स्ट-आधारित फॉर्मेट है जो JavaScript सिंटैक्स पर आधारित है। इसमें "की-वैल्यू" पेयर, नेस्टेड ऑब्जेक्ट और ऐरे होते हैं। iOS डेवलपमेंट में JSON का उपयोग इनके लिए किया जाता है:

\n\n
    \n
  • REST API सर्वर से डेटा प्राप्त करना
  • \n
  • एप्लिकेशन की कॉन्फ़िगरेशन और सेटिंग्स को सेव करना
  • \n
  • एप्लिकेशन के मॉड्यूल के बीच डेटा एक्सचेंज करना
  • \n
  • डेटाबेस (जैसे Firebase या CoreData + JSON) के साथ काम करना
  • \n
\n\n

Swift में JSON के साथ काम करने के दो मुख्य तरीके हैं: पुराना तरीका JSONSerialization (Foundation से) और आधुनिक तरीका Codable, Encodable और Decodable प्रोटोकॉल के साथ। हम पहले आसान JSONSerialization से शुरू करेंगे ताकि मैकेनिज़्म समझ में आए, फिर पावरफुल Codable पर जाएंगे।

\n\n

JSONSerialization (Foundation) के साथ JSON पार्सिंग

\n\n

JSONSerialization Foundation में बिल्ट-इन क्लास है जो JSON डेटा को Swift ऑब्जेक्ट (डिक्शनरी और ऐरे) में बदलता है। यह तरीका Swift के शुरुआती वर्ज़न से मौजूद है और अभी भी लीगेसी प्रोजेक्ट्स में उपयोग होता है। आइए एक उदाहरण देखें।

\n\n

मान लीजिए हमारे पास एक यूज़र की जानकारी वाली JSON स्ट्रिंग है:

\n\n
let jsonString = """\n{\n    "name": "राहुल",\n    "age": 30,\n    "email": "rahul@example.com",\n    "isActive": true,\n    "hobbies": ["पढ़ना", "प्रोग्रामिंग", "खेल"]\n}\n"""
\n\n

इस JSON को पार्स करने के लिए, पहले स्ट्रिंग को Data में बदलें, फिर JSONSerialization का उपयोग करें:

\n\n
import Foundation\n\nif let jsonData = jsonString.data(using: .utf8) {\n    do {\n        if let dictionary = try JSONSerialization.jsonObject(with: jsonData, options: []) as? [String: Any] {\n            print("नाम: \\(dictionary["name"] ?? "डेटा नहीं")")\n            print("उम्र: \\(dictionary["age"] ?? "डेटा नहीं")")\n            if let hobbies = dictionary["hobbies"] as? [String] {\n                print("शौक: \\(hobbies.joined(separator: ", "))")\n            }\n        }\n    } catch {\n        print("JSON पार्सिंग में त्रुटि: \\(error.localizedDescription)")\n    }\n}
\n\n

महत्वपूर्ण बिंदु:

\n
    \n
  • हमेशा try-catch का उपयोग करें — पार्सिंग में त्रुटि हो सकती है।
  • \n
  • परिणाम Any के रूप में आता है, इसलिए इसे विशिष्ट टाइप ([String: Any] ऑब्जेक्ट के लिए, [Any] ऐरे के लिए) में कास्ट करना ज़रूरी है।
  • \n
  • ऑप्शन .mutableContainers और .fragmentsAllowed पार्सिंग की लचीलापन को नियंत्रित करते हैं।
  • \n
\n\n

आधुनिक तरीका: Codable प्रोटोकॉल

\n\n

Swift 4 से शुरू करके, Apple ने Codable प्रोटोकॉल पेश किया (जो Encodable और Decodable को जोड़ता है)। यह असली "जादू" है — बस एक स्ट्रक्चर घोषित करें, और Swift अपने आप जानता है कि डेटा को कैसे पार्स और सीरियलाइज़ करना है। आइए पिछले उदाहरण को Codable के साथ फिर से लिखें।

\n\n

1. डेटा मॉडल घोषित करना

\n\n
struct User: Codable {\n    let name: String\n    let age: Int\n    let email: String\n    let isActive: Bool\n    let hobbies: [String]\n}
\n\n

ध्यान दें: स्ट्रक्चर में फ़ील्ड के नाम JSON कीज़ से मेल खाने चाहिए (केस सेंसिटिव)। अगर कीज़ अलग हैं (जैसे snake_case), तो CodingKeys का उपयोग करें।

\n\n

2. JSON पार्सिंग

ब्लॉग

पुस्तक अनुशंसाएँ