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 *解析爲單個字典。 –