php - 为什么我的 php json_encode 不能在 alamofire 中使用 .responseJSON 序列化?

标签 php ios json swift alamofire

我在对来 self 的服务器(它是 PHP 后端)的 iOS 应用程序上的 JSON 响应进行序列化时遇到一些问题。我的应用程序发送带有适当参数的发布请求,验证它们,将结果放入数组中,然后对其进行编码。现在这不是问题,代码可以正常工作。然而,这是它们之间的联系。请看下面的 PHP 代码。

echo json_encode($array)

现在进入 xcode,我使用 alamofire 发送请求,如下面的代码所示

Alamofire.request(URL_USER_REGISTER, method: .post, parameters: parameters).responseString { response in
            print(response)
            }
        }

正如您在 .responseString 中看到的那样,因为显然如果我使用 .responseJSON ,它会抛出 code=3480 错误,并且我想从我自己的响应 JSON 中获取特定数据。我尝试了其他方法来在线修复此问题,但他们都选择了 .responseString 选项。

为什么会发生这种情况? JSON 类型不兼容吗?这其中有什么 secret 吗?

我只想从我的 JSON 响应中获取特定数据,例如“消息”,而当我获取字符串时这是不可能的...任何帮助都会受到赞赏!

我正在使用 Alamofire 4.3

最佳答案

尝试以下操作,以便 Alamofire 将通过 JSONSerialization 运行响应数据,具体取决于您可以使用 json 作为的 JSON 响应类型? [字符串:任意]json 作为? [[字符串:任意]]

Alamofire.request(URL, method: .post, parameters: parameters).responseJSON { response in
    guard response.error == nil, let json = response.result.value else {
        print("Error: \(response.error?.localizedDescription ?? "no content")")
        return
    }

    if let jsonDict = json as? [String : Any] {
        print(jsonDict)
    } else if let jsonArray = json as? [[String : Any]] {
        print(jsonArray)
    }
}

关于php - 为什么我的 php json_encode 不能在 alamofire 中使用 .responseJSON 序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55670238/

相关文章:

php - fatal error : Cannot redeclare imagecreatefrombmp()

php - 尝试将字段添加到注册表单时无法加载类型 "app_user_registration"

php - 从 cookie 投票 5 次

ios - 在 iOS 14.8 上调用过期处理程序之前,BGProcessingTaskRequest 仅运行 295 秒

javascript - 我是 API 新手。为什么我获取 JSON 的请求不起作用?

javascript - JSON 元素选择

php - Mysql 使用 php 加入只有 2 个表的问题

ios - NSUSerDefault 没有为 swift 更新我的全局变量

javascript - 你能从安装了angular-touch的javascript中检测到双击吗

json - 在 Golang 中读取在线 JSON 并将值保存到 CSV