Преобразование ответа веб-службы в объекты JSON с помощью Alamofire - PullRequest
0 голосов
/ 07 мая 2018

Я использую веб-сервис с ответом на немецком языке. Я пытаюсь разобрать сына следующим образом:

alamoFireManager.request(urlString,method: .get, parameters: parameter, encoding: JSONEncoding.default, headers:headers).validate().responseJSON {  [unowned self] (response) in
    debugPrint(response)
    switch response.result {
    case .success(let value):
      handler(true,value,nil)
    case .failure:
      self.errorhandler(response, ComepletionHandler: handler)
    }
  }

Но я получаю следующую ошибку из-за немецкого языка:

responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed (Ошибка домена = NSCocoaErrorDomain Code = 3840 "Невозможно преобразовать данные в строку вокруг символа 1819." UserInfo = {NSDebugDescription = 18) невозможно преобразовать данные в строку вокруг символа

Хотя я получаю данные в response.data, но Alamofire не может преобразовать их в действительный ответ JSON. Ответ - это что-то л

Aufbrechen von Kan \ ufffdlen f \ ufffdr die Verlegung von Rohren bei Sanit \ ufffdranwendungen

Как я могу это исправить?

1 Ответ

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

responseJSON передаст объект JSON в его завершение. то есть это будет словарь или массив со строковыми ключами и JSON-совместимыми значениями.

Вы должны использовать responseData для типа String, а не JSON

 alamoFireManager.request(urlString,method: .get, parameters: parameter, encoding: JSONEncoding.default, headers:headers).validate().responseData {  [unowned self] (response) in
        debugPrint(response)
        switch response.result {
        case .success(let value):
          handler(true,value,nil)
        case .failure:
          self.errorhandler(response, ComepletionHandler: handler)
        }
      }
...