সুইফট 3 এবং সুইফট 4 এর Stringসাথে একটি পদ্ধতি বলা হয় data(using:allowLossyConversion:)। data(using:allowLossyConversion:)নিম্নলিখিত ঘোষণা আছে:
func data(using encoding: String.Encoding, allowLossyConversion: Bool = default) -> Data?
প্রদত্ত এনকোডিং ব্যবহার করে স্ট্রিং এনকোডযুক্ত একটি উপস্থাপনাযুক্ত একটি ডেটা ফেরত দেয়।
সুইফট 4 String-এর data(using:allowLossyConversion:)সাথে একটি অভিধানে জেএসএন স্ট্রিংকে ডিসিশায়াল করার জন্য JSONDecoderএর ব্যবহারের সাথে ব্যবহার করা যেতে পারে decode(_:from:)।
তদ্ব্যতীত, সুইফট 3 এবং সুইফট 4 Stringএর data(using:allowLossyConversion:)সাথে একটি অভিধানে জেএসএন স্ট্রিংকে ডিসিশিয়ালাইজ করার জন্য JSONSerializationএর ব্যবহারের সাথেও ব্যবহার করা যেতে পারে jsonObject(with:options:)।
# 1। সুইফট 4 সমাধান
সুইফট 4 এর সাথে JSONDecoderএকটি পদ্ধতি বলা হয় decode(_:from:)। decode(_:from:)নিম্নলিখিত ঘোষণা আছে:
func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable
প্রদত্ত JSON উপস্থাপনা থেকে প্রদত্ত ধরণের একটি শীর্ষ স্তরের মান ডিকোড করে।
কিভাবে ব্যবহার করতে শো নিচে খেলার মাঠ কোড data(using:allowLossyConversion:)এবং decode(_:from:)অনুক্রমে একটি পেতে Dictionaryএকটি JSON- থেকে ফরম্যাট String:
let jsonString = """
{"password" : "1234", "user" : "andreas"}
"""
if let data = jsonString.data(using: String.Encoding.utf8) {
do {
let decoder = JSONDecoder()
let jsonDictionary = try decoder.decode(Dictionary<String, String>.self, from: data)
print(jsonDictionary) // prints: ["user": "andreas", "password": "1234"]
} catch {
// Handle error
print(error)
}
}
# 2। সুইফট 3 এবং সুইফট 4 সমাধান
সুইফট 3 এবং সুইফট 4 এর JSONSerializationসাথে একটি পদ্ধতি বলা হয় jsonObject(with:options:)। jsonObject(with:options:)নিম্নলিখিত ঘোষণা আছে:
class func jsonObject(with data: Data, options opt: JSONSerialization.ReadingOptions = []) throws -> Any
প্রদত্ত JSON ডেটা থেকে একটি ফাউন্ডেশন অবজেক্ট প্রদান করে।
কিভাবে ব্যবহার করতে শো নিচে খেলার মাঠ কোড data(using:allowLossyConversion:)এবং jsonObject(with:options:)অনুক্রমে একটি পেতে Dictionaryএকটি JSON- থেকে ফরম্যাট String:
import Foundation
let jsonString = "{\"password\" : \"1234\", \"user\" : \"andreas\"}"
if let data = jsonString.data(using: String.Encoding.utf8) {
do {
let jsonDictionary = try JSONSerialization.jsonObject(with: data, options: []) as? [String : String]
print(String(describing: jsonDictionary)) // prints: Optional(["user": "andreas", "password": "1234"])
} catch {
// Handle error
print(error)
}
}