2
我想讀一個JSON,可能有從客戶播放框架JSON Reader和定製JSErrors
{
"email" : "[email protected]",
"password" : "XXXX",
"facebookToken": "XXXXXXXXXXX"
}
的facebookToken未來下列參數可能是空或不存在,在這種情況下, 應填寫電子郵件/密碼,反之亦然。
我無法構建這個閱讀器,這是我到目前爲止有:
val loginEmail = (
(__ \ "email").read[String] and
(__ \ "password").read[String]
)((email: String, password: String) => new User(email, password))
val loginFacebook = (
(__ \ "facebookToken").read[String]
)((facebookToken : String) => new User(facebookToken))
val loginReader(RequestBodyJson) = (
(RequestBodyJson).read[User](loginEmail) or
(RequestBodyJson).read[User](loginFacebook)
)
誰能告訴我如何正確地做到這一點?
我也想用它自定義消息返回JSError。例如,如果FacebookToken不存在,並且電子郵件有問題(「電子郵件無效」),而不是「/ facebookToken路徑未找到」一般錯誤。
這看起來很合理。但是,在我的用例中構成或組合閱讀器作爲單個閱讀器的正確方法是什麼? –
我剛剛更新了代碼,出現了一個錯誤......此解決方案是否更好? (我不明白你的問題) –
對不起,這是我想要的: 創建一個讀取器,如果FacebookToken或電子郵件和密碼被正確解析,返回帶有用戶對象的JSSuccess。或通過更改JSError返回自定義錯誤消息 我明白如何從您的解釋中更改錯誤,但我仍然不清楚如何在一個Reader中構建JSSuccess案例(如果可能的話) –