2015-06-07 24 views
-1

我試圖解析由下面的代碼生成服務器響應(鋼軌API的應用與發展葡萄)SwiftyJSON - 沒有進入JSON數據

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 \「:[\」太短(最小8個字符)\「]}」但我無法使用錯誤[「email 「] - 它不包含任何數據。我如何循環錯誤並訪問所有數據?

+0

解析JSON,或許固定呢? –

回答

0

問題出在服務器端,因爲它生成了轉義的json。我已經與以下

error!(user.errors, 400) 

這是我的錯:)

0

是的,你需要解析響應鍵以便將其作爲字典閱讀。它也看起來像你可能不得不在你解析它之前取消迴應,除非你的解析器爲你處理。