使用Ajax JSON将Map发送到servlet

时间:2018-05-25 19:04:12

标签: javascript java ajax hibernate tomcat

我正在构建一个Tomcat项目,但我需要将一个JavaScript Map发送到Servlet。

我试图用JSON和Ajax做到这一点。使用简单的数组我没有任何问题。但是当我在服务器端发送一张地图时,它只会打印出#L; [Ljava.lang.String @"和参考。但不是内容。

这是我的代码:我的地图名称是故障单,这是它的结构:

ticket[id] = { nombre: nombre, precio:price,cantidad: 1 };

在客户端,我调用此函数通过Ajax发送此Map。

首先,我将地图转换为JSON:

var datos=JSON.stringify(ticket);

我发送这样的请求:

$.ajax({
         url:"VentaProductos",
         type:"POST",
         dataType:'json',
         data: {datos},
         success:function(data){
         alert("OK")
            },
        });

这是服务器端。这是方法doPost():

String[] myJsonData = request.getParameterValues("datos");
System.out.println("Servlet"+request.getParameterValues("datos").toString());
if(myJsonData!=null) {
    System.out.println("It works");
};

System.out.println只打印" Servlet [Ljava.lang.String; @ 320aaecf"只是一个参考。 如何解决此问题以接收此地图的内容? 感谢

1 个答案:

答案 0 :(得分:0)

我最终改变了Map的多维数组,它适用于:

客户方:

$.ajax({
        url:"VentaProductos",
        type:"POST",
        dataType:'json',
        success:function(data){
            // codes....
        },
        data: {json: JSON.stringify(multidimensionalarray)}
    });

服务器端:

String[] data = request.getParameterValues("json");

我希望将来可以帮助某人:)