您需要调整这个为您的特定型号,但这是我通常用于解析JSON的过程。
型号:
class Category : NSObject {
// Model Objects
var categoryId: NSNumber!
var categoryDesc: String!
var inAppId: String!
var categoryUnlocked: NSNumber!
override init() {
self.categoryId = 0
self.categoryDesc = ""
self.inAppId = ""
self.categoryUnlocked = 0
}
convenience init(categoryDictionary: [String : AnyObject]) {
self.init()
self.categoryId = NSNumber(int: categoryDictionary["CategoryID"]!.intValue)
self.categoryDesc = categoryDictionary["Category_Desc"] as? String ?? ""
self.inAppId = categoryDictionary["InAppID"] as? String ?? ""
self.categoryUnlocked = categoryDictionary["CategoryUnlocked"] as? NSNumber ?? 0
}
}
随着我使用array.map功能的JSON:
var categoryList = [Category]()
if let catArray = data["categories"] as? NSArray {
categoryList = catArray.map({Category(categoryDictionary: $0 as! [String : AnyObject])})
CoreDataService.instance.saveCategories(categoryList)
}
这种方式是整齐和可读性为未来的开发者和具体型号内易于管理。