Swift 3 ve Swift 4 ile Stringdenilen bir yöntem var data(using:allowLossyConversion:). data(using:allowLossyConversion:)aşağıdaki beyanı içerir:
func data(using encoding: String.Encoding, allowLossyConversion: Bool = default) -> Data?
Belirli bir kodlama kullanılarak kodlanan Dizenin bir temsilini içeren bir Veri döndürür.
Swift 4 ile, String'ler bir JSON dizesini sözlükte serileştirmek için ' s data(using:allowLossyConversion:)ile birlikte kullanılabilir .JSONDecoderdecode(_:from:)
Ayrıca, Swift 3 ve Swift 4, String'in data(using:allowLossyConversion:)birlikte de kullanılabilir JSONSerializationS' jsonObject(with:options:)bir sözlüğe JSON dize serisini amacıyla.
# 1. Swift 4 çözümü
Swift 4 ile JSONDecoderdenilen bir yöntem var decode(_:from:). decode(_:from:)aşağıdaki beyanı içerir:
func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable
Belirli bir JSON gösteriminden, belirtilen türde bir üst düzey değerin kodunu çözer.
Nasıl kullanımına gösterileri altında Bahçesi kodu data(using:allowLossyConversion:)ve decode(_:from:)sırayla bir olsun Dictionarybir JSON'dan biçimlendirilmiş 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. Swift 3 ve Swift 4 çözümü
Swift 3 ve Swift 4 ile JSONSerializationdenilen bir yöntem var jsonObject(with:options:). jsonObject(with:options:)aşağıdaki beyanı içerir:
class func jsonObject(with data: Data, options opt: JSONSerialization.ReadingOptions = []) throws -> Any
Verilen JSON verilerinden bir Foundation nesnesi döndürür.
Nasıl kullanımına gösterileri altında Bahçesi kodu data(using:allowLossyConversion:)ve jsonObject(with:options:)sırayla bir olsun Dictionarybir JSON'dan biçimlendirilmiş 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)
}
}