在 Swift 3.0 中使用 SwiftyJSONModel 接收空值

Receive null values with SwiftyJSONModel in Swift 3.0

网络服务调用成功后,我得到关注json

"balance_details":{  
         "raw_balance":"13157.70",
         "raw_credit_adeded":"4035000.00",
         "raw_credit_deducted":"0.00",
         "raw_tot_paid_amount":6000,
         "tot_paid_amount":"Rs.6000.00",
         "tot_paid_invoices":2,
         "balance":"13157.7",
         "current_balance":"Rs.13157.70",
         "credit_added":"Rs.4035000.00",
         "credit_deducted":"Rs.0.00",
         "last_recharge_amt":null,
         "raw_amount":null,
         "last_recharge_date":""
      }

对于这个网络电话,我使用的是 Alamofire。为了将此 JSON 映射到 SWIFT 对象,我使用了 SwiftyJSON 模型库。但是我无法将类型设置为将 null 值存储到 JSON 对象中。

class BalanceDetails: JSONObjectInitializable {

    // FIXME: - properties
    var rawBalance: String
    var rawCreditAdeded: String
    var rawCreditDeducted: String
    var rawTotalPaidAmount: Int
    var totalPaidAmount: String
    var totalPaidInvoices: Int
    var balance: String
    var currentBalance: String
    var creditAdded: String
    var creditDeducted: String
    //    var lastRechargeAmount: NSObject
    //    var rawAmount: NSObject
    var lastRechargeDate: String

    // FIXME: - json properties
    enum PropertyKey: String {
        case raw_balance
        case raw_credit_adeded
        case raw_credit_deducted
        case raw_tot_paid_amount
        case tot_paid_amount
        case tot_paid_invoices
        case balance
        case current_balance
        case credit_added
        case credit_deducted
        //        case last_recharge_amt
        //        case raw_amount
        case last_recharge_date
    }

    // FIXME: - initializer
    required init(object: JSONObject<PropertyKey>) throws {
        rawBalance = try object.value(for: .raw_credit_adeded)
        rawCreditAdeded = try object.value(for: .raw_credit_adeded)
        rawCreditDeducted = try object.value(for: .raw_credit_deducted)
        rawTotalPaidAmount = try object.value(for: .raw_tot_paid_amount)
        totalPaidAmount = try object.value(for: .tot_paid_amount)
        totalPaidInvoices = try object.value(for: .tot_paid_invoices)
        balance = try object.value(for: .balance)
        currentBalance = try object.value(for: .current_balance)
        creditAdded = try object.value(for: .credit_added)
        creditDeducted = try object.value(for: .credit_deducted)
        //        lastRechargeAmount = try object.value(for: .last_recharge_amt)
        //        rawAmount = try object.value(for: .raw_amount)
        lastRechargeDate = try object.value(for: .last_recharge_date)
    }
}

当我取消注释上面代码中的注释行时,xcode 提示我错误 "No 'value' candidates produce the expected contextual result type 'NSObject'"。所以我的问题是如何为 JSON 值设置类型,以便它与 class 字段一起存储。

我不能评论所以我在这里回答你:

认为可能是因为这些键的值为空,所以我会尝试这个:

     lastRechargeAmount = try? object.value(for: .last_recharge_amt) as? String
     rawAmount = try? object.value(for: .raw_amount) as? String