Java serverlet解析JSON数据

时间:2016-08-27 06:50:02

标签: java jquery json jsp

我想将JSON对象从JavaScript发布到java serverlet。 我使用了以下javaScript代码:

var a = {};
function SaveInfo(c)
{
    document.getElementById("saveButton").className = "savebutton";
    document.getElementById("cancelButton").className = "cancebutton";
    var z=  $(c).parent().parent().attr('id');
    a[z] = c.value;
}
$("#saveButton").click(function(e){
   if(  document.getElementById("saveButton").className=="savebutton")
       $.ajax({
           url: "../../update",
           type: 'POST',
           dataType: 'json',
           data: JSON.stringify(a),
           contentType: 'application/json',
           mimeType: 'application/json',
           success: function (data) {
               consol.log(data);
           },
           error:function(data,status,er) {
               alert("error: "+data+" status: "+status+" er:"+er);
           }
      });
});

以及以下java代码:

public void doPost(HttpServletRequest req, HttpServletResponse res){
    JSONObject jObj;
    jObj = new JSONObject(req.getParameter("mydata")); // this parses the json
    Iterator it = jObj.keys();

    while(it.hasNext())
    {
        String key = (String)it.next(); // get key
        Object o = jObj.get(key); // get value
       // store in session
    }
} 

JSON已成功收到。 问题是没有构造函数:

jObj = new JSONObject(req.getParameter("mydata")); 

我想读取通过javascript传递的值和密钥。

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(req.getParameter("mydata").toString());

答案 1 :(得分:0)

出于您的目的,您只需使用表单,只需解析它:

    Map<String, String[]> map = request.getParameterMap();

    for(Entry<String, String[]> e : map.entrySet()){
        response.getWriter().write(e.getKey() + ":" + e.getValue()[0] + "\n");
    }

当您想要发送对象或复杂数据阵列等时使用json。

希望完成你的工作。