Swift (iOS/macOS) में YAML के साथ कार्य
YAML (YAML Ain't Markup Language) डेटा सीरियलाइज़ेशन का एक सुविधाजनक प्रारूप है, जो कॉन्फ़िगरेशन फ़ाइलों, API विवरण और डेटा आदान-प्रदान के लिए व्यापक रूप से उपयोग किया जाता है। iOS और macOS के लिए Swift इकोसिस्टम में YAML को पार्स और जनरेट करने के लिए कई विश्वसनीय लाइब्रेरीज़ उपलब्ध हैं। इस लेख में हम दो सबसे लोकप्रिय लाइब्रेरीज़ पर विचार करेंगे: Yams और YamlSwift। आप सीखेंगे कि उन्हें प्रोजेक्ट में कैसे स्थापित करें, बुनियादी पार्सिंग, सीरियलाइज़ेशन कैसे करें और संभावित त्रुटियों को कैसे संभालें।
1. लाइब्रेरीज़ का अवलोकन
Yams
Yams YAML के साथ कार्य करने के लिए एक आधुनिक लाइब्रेरी है, जो पूरी तरह से Swift में लिखी गई है। यह YAML 1.2 विनिर्देश का समर्थन करती है, इसमें लेक्सर, पार्सर और सीरियलाइज़ेशन के साधन शामिल हैं। Yams को समुदाय द्वारा सक्रिय रूप से समर्थित किया जाता है और यह Swift Package Manager या CocoaPods का उपयोग करने वाले प्रोजेक्ट्स के लिए उपयुक्त है।
YamlSwift
YamlSwift एक हल्की लाइब्रेरी है, जो पूरी तरह से Swift में लिखी गई है। यह YAML स्ट्रिंग्स और फ़ाइलों को पार्स करने के लिए एक न्यूनतम API प्रदान करती है। YamlSwift सरल परिदृश्यों के लिए आदर्श है, जब YAML की सभी सुविधाओं के पूर्ण समर्थन की आवश्यकता नहीं होती।
2. स्थापना
दोनों लाइब्रेरीज़ को Swift Package Manager (SPM) या CocoaPods के माध्यम से स्थापित किया जा सकता है। दोनों विकल्पों पर विचार करें।
Swift Package Manager के माध्यम से स्थापना (अनुशंसित)
Xcode में File → Add Packages खोलें और रिपॉजिटरी URL डालें:
- Yams:
https://github.com/jpsim/Yams.git - YamlSwift:
https://github.com/behrang/YamlSwift.git
आवश्यक संस्करण चुनें (अंतिम स्थिर संस्करण अनुशंसित है) और अपने target में पैकेज जोड़ें।
CocoaPods के माध्यम से स्थापना
अपने Podfile में पंक्ति जोड़ें:
# Yams के लिएpod 'Yams'
# YamlSwift के लिएpod 'YamlSwift'फिर pod install चलाएँ।
3. Yams के साथ YAML पार्सिंग
स्थापना के बाद, Swift फ़ाइल में लाइब्रेरी आयात करें:
import Yamsस्ट्रिंग का बुनियादी पार्सिंग
मान लीजिए, हमारे पास उपयोगकर्ता जानकारी वाली YAML स्ट्रिंग है:
let yamlString = """name: इवान पेत्रोवage: 30languages: - Swift - Python - JavaScript"""पार्सिंग Yams.load(yaml:) फ़ंक्शन के साथ की जाती है:
do { if let result = try Yams.load(yaml: yamlString) as? [String: Any] { print("नाम: \\(result["name"] ?? "")") print("आयु: \\(result["age"] ?? 0)") if let languages = result["languages"] as? [String] { print("भाषाएँ: \\(languages.joined(separator: ", "))") } }} catch { print("YAML पार्सिंग त्रुटि: \\(error.localizedDescription)")}फ़ाइल से पार्सिंग
Bundle से YAML फ़ाइल लोड करने के लिए उपयोग करें:
guard let filePath = Bundle.main.path(forResource: "config", ofType: "yaml"), let yamlString = try? String(contentsOfFile: filePath, encoding: .utf8) else { fatalError("config.yaml फ़ाइल नहीं मिली")}
do { let config = try Yams.load(yaml: yamlString) as? [String: Any] // config के साथ कार्य} catch { print("त्रुटि: \\(error)")}4. Yams के साथ सीरियलाइज़ेशन (YAML निर्माण)
Yams Swift ऑब्जेक्ट्स को वापस YAML स्ट्रिंग में बदलने की भी अनुमति देता है। Yams.dump(object:) फ़ंक्शन का उपयोग करें:
let dictionary: [String: Any] = [ "name": "अन्ना स्मिर्नोवा", "age": 25, "skills": ["iOS", "macOS", "watchOS"]]
do { let yamlString = try Yams.dump(object: dictionary) print(yamlString)} catch { print("सीरियलाइज़ेशन त्रुटि: \\(error)")}परिणाम इस प्रकार दिखेगा:
age: 25name: अन्ना स्मिर्नोवाskills:- पुस्तकालय में भी
Entity Framework Core C# (.NET): पूरी गाइड उदाहरणों के साथ
PHP पर छवियों के साथ कार्य: resize, crop (आकार बदलना और क्रॉप करना)
TypeScript में रिएक्टिव प्रोग्रामिंग: RxJS लाइब्रेरी
Node.js में इमेज प्रोसेसिंग: Sharp, Jimp और gm लाइब्रेरी