Я хотел бы знать, как я могу вернуть данные ответа json из класса контроллера Scala (2.2.x) для отображения на моей странице просмотра? У меня есть объекты json в базе данных Postgresql (имя таблицы: «test» и имеющие: id и имя). Пожалуйста, предоставьте мне какие-либо решения.Как вернуть json из контроллера Play Scala?
Я пробовал следующие случаи (a и b), но я не уверен, почему я не получаю ответ (например: имена) на моем контроллере, поэтому я могу показать их на моей странице просмотра? так как я очень новичок в Play/Scala и Postgresql. кейс a. Если я дам, как: модели:
def getTestValuesFromTable() = {
DB.withConnection { implicit connection =>
val selectJson =SQL("select name from test").on().apply().collect {
case Row(id:Long, Some(name:String)) =>
new TestContent(name)
}
//.head
//JsObject(selectJson().map { row => row[Long]("id").toString -> JsString(row[String]("name")) }.toSeq)
}
}
контроллер:
def getTest = Action {
val response = TestContent.getTestValuesFromTable()
Ok("Done")
//Ok(response)
}
Выхода: Done (приложение выполняется нормально, без каких-либо исключений, конечно JSON данных не подходят, так как я возвращаюсь: Done только, поэтому получение выхода: «Готово»)
кейс b. Если я сделаю так: получение ошибки: недостаточно аргументов для метода: (n: Int) models.Testname в признаке LinearSeqOptimized. Неопределенный параметр значения n. Я действительно не уверен, как я могу получить ответ?
контроллер:
def getTest = Action {
val response = TestContent.getTestValuesFromTable()
// Ok("Done")
Ok(response)
}
модель:
def getTestValuesFromTable(): JsValue = {
DB.withConnection { implicit connection =>
val selectJson = SQL("select * from test")
JsObject(selectJson().map { row => row[Long]("id").toString -> JsString(row[String]("name")) }.toSeq)
// val selectJson =SQL("select name from test").on().apply().collect {
// case Row(id:Long, Some(name:String)) =>
// new TestContent(name)
// }
//.head
JsObject(selectJson().map { row => row[Long]("id").toString -> JsString(row[String]("name")) }.toSeq)//not enough arguments for method apply: (n: Int)models.Testname in trait LinearSeqOptimized. Unspecified value parameter n.
}
}
Пожалуйста, дайте мне знать, как получить мой ответ?
Возможный дубликат [Невозможно вернуться Ответ JSON с использованием Play Framework и Postgresql?] (Http://stackoverflow.com/questions/35547677/unable-to-return-json-response-using-play-framework-and-postgresql) – cchantep