I have a JSON response like:
{
total_count: 155,
size: 75,
authors: [{ name: "test1"
id: 1
},
{name: "test2"
id: 2
}]
}
I created my object model and use objectMapper for mapping/parsing this 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
}
With print(item) I can see the objects but, I can't make append work. It is giving "Unexpectedly found nil while unwrapping an Optional value
" error.
Your JSON is not valid.
You can check your JSON validity using JSONLint for exemple.
For more safety in your code, avoid usage of !
.
Replace
authorArray.append(Mapper<Author>().map(JSONObject: item)!)
by
if let author = (Mapper<Author>().map(JSONObject: item) {
authorArray.append(author)
} else {
print("Unable to create Object from \(item)")
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With