SwiftyJSON - 无法访问 JSON 数据
SwiftyJSON - no access to JSON data
我正在尝试解析由以下代码生成的服务器响应(api for rails 用 grape 开发的应用程序)
if user.persisted?
return user.to_json
else
error!(user.errors.to_json, 400)
end
当用户提交错误数据时,我看到来自服务器的以下响应:
{
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)
}
在此代码中,错误变量包含 "{\"email\":[\"is invalid\"],\"password\":[\"is too short (minimum is 8 characters)\"]} “ 但我不能使用错误 ["email"] - 它不包含任何数据。我如何遍历错误并访问所有数据?
是的,您需要解析响应键才能将其作为字典读取。看起来您可能必须在解析响应之前取消转义响应,除非您的解析器会为您处理。
问题出在服务器端,因为它生成了转义 json。我已经通过以下
修复了它
error!(user.errors, 400)
这是我的错误:)
我正在尝试解析由以下代码生成的服务器响应(api for rails 用 grape 开发的应用程序)
if user.persisted?
return user.to_json
else
error!(user.errors.to_json, 400)
end
当用户提交错误数据时,我看到来自服务器的以下响应:
{
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)
}
在此代码中,错误变量包含 "{\"email\":[\"is invalid\"],\"password\":[\"is too short (minimum is 8 characters)\"]} “ 但我不能使用错误 ["email"] - 它不包含任何数据。我如何遍历错误并访问所有数据?
是的,您需要解析响应键才能将其作为字典读取。看起来您可能必须在解析响应之前取消转义响应,除非您的解析器会为您处理。
问题出在服务器端,因为它生成了转义 json。我已经通过以下
修复了它error!(user.errors, 400)
这是我的错误:)