Как опубликовать вложенный JSON с помощью ObjectMapper и Alamofire? - PullRequest
0 голосов
/ 15 мая 2018

У меня запрос json для API сообщения:

{"TokenId": "xxxxxx-xxxxx-xxxx-xxx", 
"ObjSearch": 
  {

     "UserId":"0",
     "FromDate":"",
     "StateId":"0",
     "DistrictId":"0",
     "ToDate":""
  }
}

В настоящее время я создал две модели запросов, такие как:

class  ChartsReqModel: NSObject, Mappable {
  var TokenId:String?
  var ObjSearch : [ChartObjSearchReqModel]?
}

И

class  ChartObjSearchReqModel: NSObject,Mappable {
var FromDate:String?
var ToDate:String?
var StateId:String?
var DistrictId:String?
var UserId:String?
var ProductId:String?
var SalesChannelId:String?
var ReporteesId:String?
var `Type`:String?

func mapping(map: Map) {
    FromDate <- map["FromDate"];
    ToDate <- map["ToDate"];
    StateId <- map["StateId"];
    DistrictId <- map["DistrictId"];
    UserId <- map["UserId"];
    ProductId <- map["ProductId"];
    SalesChannelId <- map["SalesChannelId"];
    ReporteesId <- map["ReporteesId"];
    Type <- map[![\[][1]][1]"Type"];
}
}

Желаемый ответ, который я получаю от моего API в почтальоне, выглядит идеально, но я думаю, что из своего кода я не могу отправить правильную модель запроса, и для моих данных показывает

Данные = ( );

Я новичок в Swift и не могу найти проблему в коде .. пожалуйста, кто-нибудь, помогите мне найти решение

Снимок экрана POSTMAN:

1 Ответ

0 голосов
/ 15 мая 2018

На основе структуры запроса ниже приведен упрощенный способ кодирования / декодирования ChartsReqModel объекта,

class  ChartsReqModel: NSObject, Mappable {
  var TokenId:String?
  var ObjSearch: ChartObjSearchReqModel?

  required init?(map: Map) {}

  func mapping(map: Map) {
      self.TokenId    <- map["TokenId"]
      self.ObjSearch  <- map["ObjSearch"]
  }
}

Теперь, когда у вас есть json из ответа, вы можете декодировать ChartsReqModel объектпередавая этот json, как показано ниже,

let chartsObject = ChartsReqModel(JSON: jsonFromResponse)

И когда вы хотите опубликовать ChartsReqModel json, вы можете закодировать его, как показано ниже

let paramsJson = chartsObject.toJSON()
...