如何使用 scala Play2.6 select 来自数据库的单列
How to select Single column from database using scala Play2.6
我有一个 table 用户详细信息 Table,它包含下面的列
用户id,用户名,邮箱
我想select给用户id为1的邮箱
并且我希望以正确的 JSON 格式
回复
如何使用 Slick 在 Scala Play 2.6 中做到这一点
到现在为止我已经做到了
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"}]
我有一个 table 用户详细信息 Table,它包含下面的列
用户id,用户名,邮箱
我想select给用户id为1的邮箱 并且我希望以正确的 JSON 格式
回复如何使用 Slick 在 Scala Play 2.6 中做到这一点
到现在为止我已经做到了
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"}]