Spielen Sie Framework JSON Reader und benutzerdefinierte JSErrors
Ich versuche, ein JSON zu lesen, das die folgenden vom Client kommenden Parameter haben könnte
{
"email" : "[email protected]",
"password" : "XXXX",
"facebookToken": "XXXXXXXXXXX"
}
DasfacebookToken könnte null oder nicht vorhanden sein, in welchem Fall dieE-Mail Passwort sollte gefüllt werden, und umgekehrt.
Ich habe Probleme beim Erstellen dieses Readers. Bisher habe ich Folgendes:
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)
)
Kann mir jemand zeigen, wie man das richtig macht?
Ich möchte auch, dass JSError mit benutzerdefinierten Nachrichten zurückgegeben wird. Wenn beispielsweise das FacebookToken nicht vorhanden ist und ein Fehler mit der E-Mail ("E-Mail war ungültig") anstelle des allgemeinen Fehlers "/ facebookToken-Pfad nicht gefunden" aufgetreten ist.