Ich möchte ein JSON-Objekt analysieren, das vom Server empfangen wird. Es gibt meinen Code zum Analysieren von JSON und zum Erstellen von Objekten.JSON in Swift analysieren
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
}
dies funktioniert gut, wenn Guard-Anweisung nicht zurückgeben Null. zum Beispiel, wenn einer der Parameter ist Null Guard-Anweisung zurückgeben NULL und Objekt kann nicht erstellen. Wie kann JSON parsen, wenn irgendein Objekt nicht vom Server empfangen wird oder null erhält?
Nicht verwandt, aber ** niemals ** deklarieren Eigenschaften in einer Klasse als implizit unwrapped optional, die in einer 'init'-Methode mit nicht-optionalen Werten initialisiert werden. Die Eigenschaften funktionieren auch (noch besser), ohne Ausrufezeichen oder Fragezeichen. – vadian
Verwenden Sie auch eine if-let-Anweisung, um das zu tun, was Sie wollen, denn wenn die Guard-Anweisung einen Nullwert erhält, wird sie zurückgegeben. – Rishabh
@Rishabh danke für die Antwort, ich suche nach besseren Weg statt, wenn Aussage zu lassen, aber ich glaube nicht, dass es einen besseren Weg gibt. – ava