小编典典

如何在Servlet中读取Ajax发送的json

ajax

我是java的新手,我为这个问题苦苦挣扎了2天,最后决定在这里提问。

我正在尝试读取jQuery发送的数据,因此可以在servlet中使用它

jQuery的

var test = [
    {pv: 1000, bv: 2000, mp: 3000, cp: 5000},
    {pv: 2500, bv: 3500, mp: 2000, cp: 4444}
];

$.ajax({
    type: 'post',
    url: 'masterpaket',
    dataType: 'JSON',
    data: 'loadProds=1&'+test, //NB: request.getParameter("loadProds") only return 1, i need to read value of var test
    success: function(data) {

    },
    error: function(data) {
        alert('fail');
    }
});

Servlet

protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
   if (request.getParameter("loadProds") != null) {
      //how do i can get the value of pv, bv, mp ,cp
   }
}

我非常感谢您可以提供的任何帮助。


阅读 346

收藏
2020-07-26

共1个答案

小编典典

除非正确发送,否则将无法在服务器上对其进行解析:

$.ajax({
    type: 'get', // it's easier to read GET request parameters
    url: 'masterpaket',
    dataType: 'JSON',
    data: { 
      loadProds: 1,
      test: JSON.stringify(test) // look here!
    },
    success: function(data) {

    },
    error: function(data) {
        alert('fail');
    }
});

您必须使用JSON.stringifyJSON字符串来发送JavaScript对象。

然后在服务器上:

String json = request.getParameter("test");

您可以json手动或使用任何库来解析字符串(我建议使用gson)。

2020-07-26