1
我在将JSON映射到我的对象类时遇到了问题。这里是我的模型对象将JSON映射到模型而不考虑数组或对象 - ObjectMapper
class CityObject : NSObject, Mappable{
var id : String?
var name : String?
required init?(map: Map) {
}
func mapping(map: Map) {
id <- map["id"]
name <- map["name"]
}
}
我从服务器某个时候得到的JSON响应可能是这样的数组或对象。
阵:
{
"cities": [
{
"id": "190",
"name": "Elurupadu"
},
{
"id": "1230",
"name": "Sendhwa"
},
{
"id": "1262",
"name": "Multai"
},
{
"id": "1480",
"name": "Kherwara"
}]
}
有时候我喜欢这个,
{
"cities": {"id": "6","name": "Hyderabad"}
}
代替JSONArray它给我的JSONObject。
我映射到我的课像这样,
let list = Mapper<CityObject>().mapArray(JSONObject:cities["cities"])
这工作完全当我得到JSONArray,但是当我得到的JSONObject同样不起作用。
如何使用ObjectMapper处理两者?
修复您的服务器。它应该提供一致的模式。否则,您将需要有条件地向下转换为数组,如果失败,则映射到字典 – Paulw11
由于服务器也从第三方获得此响应,因此目前无法在服务器端进行修复,您是否可以提供小代码片段在我的最后有一个检查器? –
@Neo即使您的服务器在将它发送到您的应用程序之前,您的服务器接收到来自第三方的数据,您也可以检查是否收到服务器端的字典或单个字典数组,如果它是单个字典,请将其包装成一个数组在这种情况下,您的应用程序会收到单个字典的数组。或者如果你真的不能在服务器端改变任何东西,只要检查'mapArray'是否成功,如果不成功,就将* cities *解析为单个字典。 –