使用Alamofire将Web服务响应转换为JSON对象

时间:2018-05-07 11:54:10

标签: json swift serialization alamofire

我正在使用以德语回复的网络服务。我试图解析儿子如下:

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(Error Domain = NSCocoaErrorDomain Code = 3840)无法将数据转换为字符串1819周围的字符串。“UserInfo = {NSDebugDescription =无法将数据转换为字符串1819周围的字符串。}))

虽然我在response.data中获取数据,但Alamofire无法将其转换为有效的JSON响应。回应是l

  

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

我该如何解决?

1 个答案:

答案 0 :(得分:0)

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)
        }
      }