我正在使用有德语响应的网络服务。我试图按如下方式解析儿子:
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 "Unable to convert data to string around character 1819." UserInfo={NSDebugDescription=Unable to convert data to string around character 1819.}))
虽然我在response.data中获取数据,但Alamofire无法将其转换为有效的JSON响应。响应是一些东西 l
Aufbrechen von Kan\ufffdlen f\ufffdr die Verlegung von Rohren bei Sanit\ufffdranwendungen
如何修复它?
最佳答案
responseJSON
会将 JSON 对象传递到其完成中。即它将是一个带有 String 键和 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)
}
}
关于json - 使用 Alamofire 将 Web 服务响应转换为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50213619/