Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SwiftyJSON-无法访问JSON数据_Swift_Alamofire_Swifty Json - Fatal编程技术网

SwiftyJSON-无法访问JSON数据

SwiftyJSON-无法访问JSON数据,swift,alamofire,swifty-json,Swift,Alamofire,Swifty Json,我试图解析由以下代码生成的服务器响应(使用grape开发的rails应用程序api) 当用户提交错误数据时,我看到服务器的以下响应: { response = "{\"email\":[\"is invalid\"],\"password\":[\"is too short (minimum is 8 characters)\"]}"; "response_type" = error; } 我在客户端使用以下代码: API.registerUser(email: emailTe

我试图解析由以下代码生成的服务器响应(使用grape开发的rails应用程序api)

当用户提交错误数据时,我看到服务器的以下响应:

{
    response = "{\"email\":[\"is invalid\"],\"password\":[\"is too short (minimum is 8 characters)\"]}";
    "response_type" = error;
}
我在客户端使用以下代码:

API.registerUser(email: emailTextField.text, password: passwordTextField.text, password_confirmation: passwordConfirmationTextField.text) {
    (data, error, statusCode) in

    var errorMessage: String

    if (data == nil && statusCode == nil) {
        errorMessage = "Server error. Please try again later"
    } else if (statusCode == 400) {
        var errors = JSON(data!)["response"]

        errorMessage = "Registration error: \n"

        // Display error notice with details

        errorMessage = errorMessage + errors.stringValue

        }

        NSLog(errorMessage)
}

在此代码中,errors变量包含“{\“email\”:[\”无效\“],\“password\”:[\”太短(最少8个字符)\“]}”但我不能使用errors[“email”]-它不包含任何数据。如何循环遍历错误并访问所有数据?

是的,您需要解析响应键才能将其作为字典读取。此外,在解析响应之前,您可能还必须取消对响应的扫描,除非您的解析器为您解决了这个问题。

问题出在服务器端,因为它生成了转义的json。我已经用以下方法修复了它

error!(user.errors, 400)

这是我的错误:)

也许是解析JSON?
error!(user.errors, 400)