如何读取java servlet中从ajax发送的JSON对象数组

时间:2016-08-04 08:08:03

标签: java jquery json ajax servlets

这是我的代码:

json = JSON.stringify(jsonObj);

$.ajax({
    type: 'post', 
    url: 'PostStudentMarks',
    async: false,
    data: json, 
    contentType: "application/json",
    dataType: 'json',
    success: function (response) {
        alert("Marks Uploaded");
    },
    error: function(err) {
        console.log(arguments);
    }
});

jsonObj包含此类数据

[{
    "student_id": "11204172"
},{
    "course_id": "PHY101",
    "semester": "1",
    "marks": "11"
},{
    "course_id": "CSE401",    
    "semester": "2",
    "marks": "22"
}]

servlet中读取和迭代它的适当Java代码应该是什么?目前我正在使用org.json.simple。此外,如果我喜欢

JSONObject jsonObject = new JSONObject(request.getParameter("json"));
JSONArray json = new JSONArray(jsonObject);

它会抛出错误undefined constructor。对此有什么合适的解决方案?另请注意,我不想使用gson。

2 个答案:

答案 0 :(得分:0)

  1. 您最好使用与您的json键包含相同属性的java Pojo。例如:student_id,course_id等。
  2. 然后相应地将json转换为您的Pojo类....例如:

    • 如果你的json包含转换为简单pojo的对象
    • 如果您的json包含数组,那么您也可以使用数组列表
  3. 例如:

    a=1.5 
    wscript.echo clng(a)   '---> 2 
    
    a=2.5 
    wscript.echo clng(a)   '---> 2 
    
    a=3.5 
    wscript.echo clng(a)   '---> 4 
    
    a=4.5 
    wscript.echo clng(a)   '---> 4
    
    a=5.5 
    wscript.echo clng(a)   '---> 6
    
    a=6.5 
    wscript.echo clng(a)   '---> 6
    

答案 1 :(得分:0)

创建一个pojo类,其实例变量名称与json参数匹配,并使用下面的代码绑定它 ObjectMapper mapper = new ObjectMapper(); String json =从请求中读取的值 YourObject(示例学生对象)obj = mapper.readValue(json,YourObject.class);