如何使用 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"}]