我尝试使用Object mapper https://github.com/Hearst-DD/ObjectMapper将JSON字符串转换为Swift对象。注意我在这里将对象简化为单个字段 - 显然我的真实响应有更多字段!
我的回答是:
data arrray response [{
chat = {
"_id" = 1;
}}]
所以我想转换为我的聊天课:
public class Chat: Mappable {
var _id: String? }
public required init?(map: Map){
}
public func mapping(map: Map) {
_id <- map["_id"]
}
}
所以我将数据数组转换为字典
let jsonResponse = dataArray [0]
let discResponse = jsonResponse as! Dictionary<String,AnyObject>
我甚至可以手动访问我的字段
let chat = discResponse["chat"]
let id = chat!["_id"]
print ("CHAT ID", id)
但映射到对象
let jsonData = try! JSONSerialization.data(withJSONObject: chat, options: .prettyPrinted)
let user = Chat(JSONString: String( describing: jsonData))
返回nil
为什么?
答案 0 :(得分:2)
只需将我的评论作为答案,如果有人会遇到同样的问题:使用Mapper<Chat>().map(JSONObject: chat)
。它应该有助于你的事业。