กับสวิฟท์สวิฟท์ที่ 3 และ 4 มีวิธีการที่เรียกว่าString
มีการประกาศดังต่อไปนี้:data(using:allowLossyConversion:)
data(using:allowLossyConversion:)
func data(using encoding: String.Encoding, allowLossyConversion: Bool = default) -> Data?
ส่งคืนข้อมูลที่มีการแทนค่าสตริงที่เข้ารหัสโดยใช้การเข้ารหัสที่กำหนด
ด้วย Swift 4 String
คุณdata(using:allowLossyConversion:)
สามารถใช้ร่วมกับJSONDecoder
's' decode(_:from:)
เพื่อยกเลิกการจัดทำสตริง JSON ลงในพจนานุกรม
นอกจากนี้ด้วย Swift 3 และ Swift 4 String
คุณdata(using:allowLossyConversion:)
ยังสามารถใช้ร่วมกับJSONSerialization
's jsonObject(with:options:)
เพื่อกำจัดสตริง JSON ลงในพจนานุกรม
# 1 โซลูชัน Swift 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 โซลูชัน Swift 3 และ Swift 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)
}
}