我想分析从服务器接收的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