我正在构建一个 Tomcat 项目,但我需要向 Servlet 发送一个 JavaScript 映射。
我试着用 JSON 和 Ajax 来做到这一点。使用简单的数组我没有任何问题。但是当我在服务器端发送 map 时,它只打印“[Ljava.lang.String@”和引用。但不是内容。
这是我的代码:我的 map 名称是ticket,这是它的结构:
ticket[id] = { nombre: nombre, precio:price,cantidad: 1 };
在客户端,我调用此函数通过 Ajax 发送此 map 。
首先,我将 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”仅供引用。
我怎样才能解决它来接收这张 map 的内容?
谢谢
最佳答案
我最终将 Map 更改为多维数组,它适用于此:
客户端:
$.ajax({
url:"VentaProductos",
type:"POST",
dataType:'json',
success:function(data){
// codes....
},
data: {json: JSON.stringify(multidimensionalarray)}
});
和服务器端:
String[] data = request.getParameterValues("json");
我希望它能在未来对某人有所帮助:)
关于javascript - 使用 Ajax JSON 将 map 发送到 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50535426/