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

标签 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 "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/

相关文章:

json - 如何将 map 转换为类型为AnyRef的json

sql - JSON - 如何将数组附加到 sql 中的数组

java - 如何在将 ArrayList<List<Integer>> 添加到 JSONArray 然后添加到 JSONObject 时修复属性名称

ios - 在 Swift 中将 NSIndexPath 转换为 NSInteger

Flutter 在本地保存数据,共享首选项与保存到文件

c++ - boost::archive::binary_(i/o) 归档可移植性

python - 将许多JSON对象索引到Elasticsearch中-规范方法

ios - 能否将本 map 片设置为SDWebImage的离线图片?

swift - @distinctUnionOfObjects 在 Swift 中可用吗?

c# - 使类在运行时可序列化