Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用Play Framework和Postgresql返回JSON响应?_Json_Postgresql_Scala_Playframework - Fatal编程技术网

无法使用Play Framework和Postgresql返回JSON响应?

无法使用Play Framework和Postgresql返回JSON响应?,json,postgresql,scala,playframework,Json,Postgresql,Scala,Playframework,我试图使用Play framework(Scala)从Postgresql数据库返回JSON响应数据 我尝试了以下方法,但无法返回json响应输出 我的数据库表中有两个JSON对象:jsondata,它具有id和name。我写了一些println消息,这些消息都没有,不知道为什么 编译器错误是 缺少参数[id]或[name] 我不确定从数据库(控制器和模型)获取JSON对象的JSON响应输出的代码中有什么错误 控制器: import play.api.Play.current import pl

我试图使用Play framework(Scala)从Postgresql数据库返回JSON响应数据

我尝试了以下方法,但无法返回json响应输出

我的数据库表中有两个JSON对象:
jsondata
,它具有
id
name
。我写了一些println消息,这些消息都没有,不知道为什么

编译器错误是

缺少参数[id]或[name]

我不确定从数据库(控制器和模型)获取JSON对象的JSON响应输出的代码中有什么错误

控制器:

import play.api.Play.current
import play.mvc.Controller;           
import play.libs.Json;
import play.libs.Json.*;                        
import com.fasterxml.jackson.databind.JsonNode;
import org.codehaus.jackson.JsonNode;           
import models.Getjsondata
import com.google.gson.Gson
import scala.util.{Try, Success, Failure}

 Getjsondata.getJsonValues(Getjsondata(Json.parse(id)), Json.parse(name));
 class MyController extends Controller {
 def getJson = Action { request =>
    println("calling getJson ... !!")//getting this message on play console
    val body: Anyname = request.body
    val textBody: Option[String] = body.asText
    println("body: "+body);//AnyContentAsEmpty
    println("textBody: "+textBody);//None
    val optionJson = textBody.flatMap(json => Try(Json.parse(json)).toOption)
    val bodyId = optionJson.map(_ \ "id")
    val bodyname = optionJson.map(_ \ "name")
    println("bodyId: "+bodyId);//None
    println("bodyName: "+bodyName);//None
    println("optionJson: "+optionJson);//None
    {
      for {
        id <- bodyId
        name <- bodyname
        json <- optionJson
      } yield {
        println("calling getJson else ... !!")
        val response = Getjsondata.getJsonValues(Getjsondata(id.as[Long],name.as[String]));
        Ok("Json data retrieved successfully: "+response)
      }
    } getOrElse BadRequest("Missing parameter either [id] or [name]")//giving error, not executing the above for loop
  }
  }

你能粘贴完整的错误信息吗?包括行号,,etc@Wojtek,感谢您的回复,我已经尝试了bodyId、bodyContent和optionJson的println消息:它显示所有的“无”,这就是为什么它会发送BadRequest消息(“缺少参数[id]或[name]”),但我的数据库表中有json对象(id和名称),不知道为什么会显示“全部为无”。你能粘贴完整的错误消息吗?包括行号,,etc@Wojtek,感谢您的回复,我已经尝试了bodyId、bodyContent和optionJson的println消息:它显示所有的“无”,这就是为什么它会发送BadRequest消息(“缺少参数[id]或[name]”),但我的数据库表中有json对象(id和名称),不知道为什么它一点也没有。
import anorm._
import anorm.SqlParser._
import play.api.db._
import play.api.Play.current
import play.api.libs.json.{Json,JsValue}
import play.api.db.DB
import play.api.libs.json._
import anorm.~
import play.api.libs.functional.syntax._

case class Getjsondata (
  id: Pk[Long], name: String
)
object Getjsondata {
  val extractor = {
    get[Pk[Long]]("jsondata.id") ~
    get[String]("jsondata.name") map {
      case id~name => Getjsondata(id, name)
 }
 }
  def getJsonValues(jsondata: Getjsondata): List[Getjsondata]= {
  println("addJson getJsonValues page... !")
  DB.withConnection { implicit connection =>
 // SQL("select row_to_json(jsondata) from jsondata");
    SQL("select * from jsondata");
     }
    }
}