我有一个表用户详细信息表,它包含在列下面
用户ID,用户名,电子邮件
我想选择用户ID为1的电子邮件,我希望响应为正确的JSON格式
如何在Scala Play 2.6中使用Slick进行操作 直到现在我已经这样做了
def getPasswqord(username:String):Future[Seq[(String)]]= {
val a2 = (sql"""select a.userpassword from user_details_table a where a.Email=$username or a.Mobile_no=$username""".as[(String)])
dbConfig.run(a2)
}
从这个我得到回应的格式"["12345"]"
。
预期的输出格式是
"[{"Password":"12345"}]"
您应该定义自定义Json Writes来格式化查询结果。例如:
import play.api.libs.json.{JsPath, JsValue, Json, Writes}
// Given passwords
val passwords: Seq[(String)] = Seq(("12345"), ("qwerty"))
val writes : Writes[String] = (JsPath \ "password").write[String]
def toJson[T](sequence: Seq[T])(implicit writes: Writes[T]): JsValue = {
Json.toJson(sequence)
}
toJson(passwords)(writes)
这将输出json对象[{"password":"12345"},{"password":"qwerty"}]