【问题标题】:How to use json object from Javascript in Scala to connect with database?如何在 Scala 中使用 Javascript 中的 json 对象连接数据库?
【发布时间】:2016-04-28 01:43:46
【问题描述】:

我是 Scala 和 Play 的新手,现在学习了一天,我有一个 json 对象,我需要将它发送到我的 scala 控制器类并连接到数据库来存储。我不知道该怎么做?请帮我解决这个问题。

(function() {
  var jvalue;
  jvalue = {};
  $('input[id=buttonId]').click(function() {
    var name;
    name = $(this).attr('name');
    jvalue[name] = $(this).val();
  });
  $('#submit').click(function() {
    $('input[id=fileId]').each(function($i) {
      var name;
      name = $(this).attr('name');
      jvalue[name] = $(this).val();
    });
    console.log(JSON.stringify(jvalue));//I need to use jvalue object in scala class to store and connect with my database(how can I use or parse or route to scala to use)
  });
})();

斯卡拉:

def addJson = Action(BodyParsers.parse.json) { implicit request =>
    jsonForm.bindFromRequest.fold(
      errors => BadRequest,
      {
        case (content) =>
          Jsoncontent.insert(Jsoncontent(NotAssigned, content))
          Redirect(routes.Application.index())
      }
   )
 }

路线

POST    /addJson                    @controllers.Application.addJson

【问题讨论】:

    标签: jquery json scala playframework coffeescript


    【解决方案1】:

    您必须使用 HTML 表单或 ajax 将数据从浏览器发送到服务器。

    如果您使用的是 jquery: http://api.jquery.com/jquery.ajax/

    $.ajax({
      method: "POST",
      url: "/addJson",
      data: jvalue
    });
    

    但是,如果您使用的是 ajax(而不是表单),则不应在操作后重定向。你应该这样做:

    case (content) =>
      Jsoncontent.insert(Jsoncontent(NotAssigned, content))
      NoContent
    

    或者返回类似:

    Ok(Json.obj({"success": true}))
    

    【讨论】:

    • 感谢您的回复,如果我将数据发送到服务器,那么如何在 scala 中使用该数据连接并存储在数据库中?
    • @Alvaro Carrasco,它给出的错误类似于 Bad Request: Not found localhost:9000/addJson ?
    • @Dhana,是哪个? BadRequest 和 NotFound 是 2 个不同的错误。您可以发布请求的成绩单(包括请求标头)吗?您可以从 chrome 开发人员工具(网络选项卡)中获取它。
    • @AlvaroCarrasco,我现在在浏览器和控制台上没有收到任何错误,但是在单击提交按钮后它没有将我的 json 对象存储在 postgresql 数据库中,我不确定我在哪里以及我做错了什么? (我正在使用 jQuery/ajax+Anorm+Play+Postgresql)请您检查一次:stackoverflow.com/questions/34921089/…
    猜你喜欢
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多