我正在构建一个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"只是一个参考。
如何解决此问题以接收此地图的内容?
感谢
答案 0 :(得分:0)
我最终改变了Map的多维数组,它适用于:
客户方:
$.ajax({
url:"VentaProductos",
type:"POST",
dataType:'json',
success:function(data){
// codes....
},
data: {json: JSON.stringify(multidimensionalarray)}
});
服务器端:
String[] data = request.getParameterValues("json");
我希望将来可以帮助某人:)