我有一个 JSON响应,如: { total_count: 155, size: 75, authors: [{ name: "test1" id: 1 }, {name: "test2" id: 2 }] } 我创建了我的对象模型并使用objectMapper来映射/解析这个json. import Foundationimport SwiftyJSONimpor
{ total_count: 155, size: 75, authors: [{ name: "test1" id: 1 }, {name: "test2" id: 2 }] }
我创建了我的对象模型并使用objectMapper来映射/解析这个json.
import Foundation import SwiftyJSON import ObjectMapper class Author: Mappable { var id: Int! var name: String! required init?(map: Map) { } func mapping(map: Map) { self.id <- map["id"] self.name <- map["name"] } static func fromJSONArray(_ json: JSON) -> [Author] { var authorArray: [Author] = [] if json.count > 0 { for item in json["authors"]{ print(item) authorArray.append(Mapper<Author>().map(JSONObject: item)!) } } return authorArray }
使用print(item)我可以看到对象但是,我无法进行附加工作.它给出了“在展开可选值时意外发现nil”错误.
您的JSON无效.例如,您可以使用JSONLint检查您的JSON有效性.
为了提高代码的安全性,请避免使用!
更换
authorArray.append(Mapper< Author>().map(JSONObject:item)!)
通过
if let author = (Mapper<Author>().map(JSONObject: item) { authorArray.append(author) } else { print("Unable to create Object from \(item)") }