我想分析從服務器接收的JSON對象。有我的解析JSON和創建對象的代碼。在Swift中解析JSON
class Transaction {
var id: String!
var amount: String!
var balance: String!
var detail: String!
var serial: String!
var time : String!
var type: String!
init(id: String, amount: String, balance: String, detail:String, serial: String, time: String, type: String) {
self.id = id
self.amount = amount
self.balance = balance
self.detail = detail
self.serial = serial
self.time = time
self.type = type
}
func CreateTransactionObject(json: [String:Any]) -> Transaction? {
guard let id = json["id"] as? String,
let amount = json["amount"] as? String,
let balance = json["balance"] as? String,
let detail = json["detail"] as? String,
let serial = json["serial"] as? String,
let time = json["time"] as? String,
let type = json["type"] as? String
else {
return nil
}
let object = Transaction(id: id, amount: amount, balance: balance, detail: detail, serial: serial, time: time, type: type)
return object
}
這個工作很好,當guard語句不返回nil時。 例如,當其中一個參數爲空時,guard語句返回nil並且對象無法創建。 如何解析JSON,如果任何對象沒有從服務器接收或獲得null?
不相關,但**從來沒有**在一個類中聲明屬性作爲隱式解包可選,它在'init'方法中初始化,傳遞非可選值。這些屬性也可以(甚至更好)工作,而不會有驚歎號或問號。 – vadian
也可以使用if-let語句來做你想做的事情,因爲如果guard語句得到一個零值,它將返回。 – Rishabh
@Rishabh謝謝你的回覆,我想找更好的方法,而不是讓我發言,但我不認爲有更好的辦法。 – ava