作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有以下格式的 json 数据:
{
"AvailToDate": "2016-12-31 00:00:00.0",
"CompanyName": "Google",
"ShowroomName": "Mobile Phones",
"OwnerUserId": "OID1544234",
"PartyId": "APL026306123",
"Currency": "USD",
"ProductCount": 10,
"AvailFromDate": "2016-12-20 00:00:00.0",
"MaxPrice": 10,
"MinPrice": 1,
"ShowroomId": 11904,
"AccessStatus": "Open"
}
我能够将上述对象数组转换为 Dictionary 对象数组。然后我将字典对象转换为核心数据实体。
这是我将 Dictionary 对象转换为 ManagedObject 的代码
let showroom = Showroom(context: bgContext)
showroom.availableFromDate = (tShowroom[kAvailFromDate] as? String)?.toDate()
showroom.minPrice = tShowroom[kMinPrice] as? Float
showroom.showroomID = tShowroom[kShowroomId] as! Int32
showroom.accessStatus = tShowroom[kAccessStatus] as? String
showroom.availableToDate = (tShowroom[kAvailToDate] as? String)?.toDate()
showroom.companyName = tShowroom[kCompanyName] as? String
showroom.showroomName = tShowroom[kShowroomName] as? String
showroom.ownerID = tShowroom[kOwnerUserId] as? String
showroom.partyID = tShowroom[kPartyId] as? String
showroom.currency = tShowroom[kCurrency] as? String
showroom.productsCount = tShowroom[kProductCount] as! Int32
showroom.maxPrice = tShowroom[kMaxPrice] as? Float
如果接收到的JSON中有些参数是缺失的,我们该如何解析对象。我是否必须将我的 ManagedObject 中的所有参数设置为可选?我不想对每个参数都使用“if let”或“guard”。实现它的最佳方法是什么?
最佳答案
您可以使用 ??
语法简单地向变量添加“默认值”
假设你想将最低价格设置为 10.2,如果没有从 json 返回值,那么这样做:
showroom.minPrice = tShowroom[kMinPrice] as? Float ?? 10.2
或者对于字符串:
showroom.accessStatus = tShowroom[kAccessStatus] as? String ?? "Default String"
关于ios - 快速将 JSON 转换为 ManagedObject 以获得可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41313157/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!