Ios 解析json时Alamofire垃圾在结束时出错

Ios 解析json时Alamofire垃圾在结束时出错,ios,json,swift,alamofire,Ios,Json,Swift,Alamofire,我正在连接本地主机上的服务器以获取一些数据。此请求返回的数据是一个JSON,在Postman上,JSON显示正确,但当我玩iOS时,Alamofire返回一个错误: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFaileureReason.jsonSerializationFailed(错误 Domain=nscocaerorrordomain Code=3840“垃圾在末尾。” UserInfo={NSD

我正在连接本地主机上的服务器以获取一些数据。此请求返回的数据是一个JSON,在Postman上,JSON显示正确,但当我玩iOS时,Alamofire返回一个错误:

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFaileureReason.jsonSerializationFailed(错误 Domain=nscocaerorrordomain Code=3840“垃圾在末尾。” UserInfo={NSDebugDescription=末尾的垃圾。})


所讨论的JSON是:

{
  "name": "TestName",
  "surname": "TestSurname"
}
我不明白的是,如果我强制服务器以字符串的形式返回json

"{"name": "TestName after update","surname": "TestSurname"}"
Alamofire不会抱怨,并正确解析它。怎么样?我认为指定参数
responseJSON
会起到相反的作用

Alamofire.request("http://192.168.1.4:8080/user/abcdf").validate().responseJSON { response in
            switch response.result {
            case .success:
                // DO stuff

            case .failure(let error):
                print(error)
            }
        }

我想你需要得到数据,所以你应该像这样写,我不确定

Alamofire.request("http://192.168.1.4:8080/user/abcdf",method:.get).responseJSON {
        response in
        if response.result.isSuccess {
          //do stuff   

        }
        else {

           // do other stuff 
        }
    }

这意味着您的API响应字符串不是正确的JSON确保您的响应是有效的JSON。在我的例子(如下)中,JSON字符串包含一些破坏JSON的HTML字符

如果您使用的是Alamofire,请将.responseJSON更改为.responseString,并验证响应结构是否有效


注意:如果您使用的是Postman,您可能不会注意到JSON响应中额外的不需要的字符。您需要将响应类型从“Pretty”更改为“Raw”才能观察到这一点。

我刚刚通过创建一个JSON服务器检查了JSON,它工作得很好,但我将JSON添加到了一个对象中,如下所示:[{name:“TestName”,姓氏:“TestName”}所以可能是JSON的生成方式,我会深入调查这绝对不是阿拉莫菲尔的错误。检查服务器的答案。它对我有效。我的临时调试代码是JSON响应中不需要的字符。