【问题标题】:How to decode json input in java using ajax and Stringify如何使用 ajax 和 Stringify 在 java 中解码 json 输入
【发布时间】:2016-05-15 03:25:51
【问题描述】:

这是我的 js 文件,我使用 ajax 将 json 数据发送到 singup.java 页面。

function signup()
{
    var name = document.getElementById('name').value;
    var mobileNo = document.getElementById('mobileNo').value;
    var emailId = document.getElementById('emailId').value;
    var password = document.getElementById('password').value;
    alert(name);
    alert(mobileNo);
    alert(emailId);
    alert(password);
    var data = {"signUp":[{"name":name,"password":password,"mobileNo":mobileNo,"emailId":emailId}]};
    alert(JSON.stringify(data));
    var sendData = function(data){   
    alert(JSON.stringify(data));
      $.ajax({
     url:'/Signup/signup',
     type: 'POST',
     contentType: 'application/json',
    data: JSON.stringify(data),
    success: function(response)
    {
            alert(response);
    },
});
};
sendData(data);
}

这是我试图获取 json 值的 signup.java 页面。我不知道正确的语法。 java中如何解析json?

package Json;

    try
    {
            String name =request.getParameter("name");
            String mobileno =request.getParameter("mobileNo");
            String email =request.getParameter("emailId");
            String password =request.getParameter("password");
            Class.forName("com.mysql.jdbc.Driver"); 
            java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/demo","root","admin"); 
            PreparedStatement ps=con.prepareStatement("insert into comments values(?,?,?,?)");
            ps.setString(1, name);
            ps.setString(2,mobileno);
            ps.setString(3, email);
            ps.setString(4, password);
            ps.executeUpdate();
            out.println("inserted");
    }
    catch(Exception ee)
    {
       out.println("error"+ee.toString());
    }
}

【问题讨论】:

    标签: javascript java jquery json ajax


    【解决方案1】:

    当您的 URI 包含 ?name=toto&firstName=titi 部分或来自使用相同格式的表单的 POST 数据时,request.getParameter 用于查询字符串。

    要读取 json,您必须自己解析或使用解析器。

    我建议你使用杰克逊https://github.com/FasterXML/jackson

    一旦导入,基本要做的是

    new ObjectMapper().readerFor(MyClass.class).readValue(request.getInputStream());
    

    为此,你的类必须有:getter/setter,不带参数的公共构造函数 -> 不要忘记,如果你声明一个带参数的,默认的会变成私有的,所以你必须声明它。

    编辑:如果你选择使用 jackson 来发送它,我建议你: var data = [{"name":name,"password":password,"mobileNo":mobileNo,"emailId":emailId} ];

    并声明一个类“MyClass”,字段名称、密码、mobileNo、emailId

    【讨论】:

    • 我是 json 的初学者。我不知道我应该在我的 singup.java 页面中导入哪些包。所以,请你详细告诉我这个过程。s
    • 如果您使用 maven 或任何依赖管理器,请在此处获取库:mvnrepository.com/artifact/com.fasterxml.jackson.core/…。那么您需要的唯一导入是:import com.fasterxml.jackson.databind.ObjectMapper
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    相关资源
    最近更新 更多