jquery的ajax向后台servlet传递json类型的多维数组
后台运行结果: 前台运行结果:



first.jsp:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<script type="text/javascript" src="jQuery/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
function test2(){ //用这种方式组装的json数组是正确的
var testArray = new Array();
for(var i = 0; i < 5; i++) {
var tempArray = new Array();
for(var j = 0; j < 10; j++){
tempArray.push(i*j);
}
testArray.push(tempArray);
}
alert("tempArray=" + tempArray); //用这种方式组装的json数组是正确的
var jsonArr = new Array();
for ( var j = 0; j < 3; j++) {
var jsonObj = {};
jsonObj["gradeId"]=1;
jsonObj["gradeName"]=2;
jsonObj["level"]=3;
jsonObj["boundary"]=4;
jsonObj["status"]=5;
jsonArr.push(jsonObj)
}
alert("jsonArr=" + jsonArr); // 用这种方式组装的json数组是错误的,接收侧只能接收到整个的这个字符串
var employees='[';
for ( var j = 0; j < 5; j++) {
employees+= '{';
employees+="name:";
employees+="zhang";
employees+=",";
employees+="old:";
employees+=30 + j;
employees +='}';
if(j!=4){
employees+=','
};
}
employees+=']';
alert("employees=" + employees); $.ajax({
type:"POST", //请求方式
url:"./testJson", //请求路径
cache: false,
data:{//传参
"name":"zhang3",
"testArray":testArray,
"students": //用这种方式传递多维数组也是正确的
[
{"name":"jackson","age":100},
{"name":"michael","age":51}
],
"employees":employees,
"jsonArr":jsonArr
},
dataType: 'json', //返回值类型
success:function(json){
alert(json[0].username+" " + json[0].password); //弹出返回过来的List对象
alert(json[1].username+" " + json[1].password); //弹出返回过来的List对象
}
});
}
</script>
</head> <body>
<input type="button" name="b" value="TestJson" onclick="test2()"/>
</body> </html>
TestJson.java
package com.zm.servlet; import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class TestJson extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
System.out.println("into doPost"); //用map来接收request发送过来的多维数组
Map map = request.getParameterMap();
Iterator<String> iter = map.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println("key=" + key );
String[] value = (String[]) map.get(key);
System.out.print("value=");
for(String v:value){
System.out.print(v + " ");
}
System.out.println();
} String sName= request.getParameter("name");//得到ajax传递过来的paramater
System.out.println(sName); PrintWriter printWriter = response.getWriter();
List list = new ArrayList();//传递List Map m=new HashMap();//传递Map
User u1=new User();
u1.setUsername("zah");
u1.setPassword("123");
User u2=new User();
u2.setUsername("ztf");
u2.setPassword("456");
list.add(u1); //添加User对象
list.add(u2); //添加User对象 m.put("u1", u1);
m.put("u2", u2); JSONArray jsonArray2 = JSONArray.fromObject( list );
//把java数组转化成转化成json对象
//JSONObject jsonObject =JSONObject.fromObject(m);//转化Map对象
printWriter.print(jsonArray2);//返给ajax请求
//printWriter.print(jsonObject);//返给ajax请求
printWriter.flush();
printWriter.close();
System.out.println("finish");
}
}
web.xml:
<!-- 测试jquery json-->
<servlet>
<servlet-name>testJson</servlet-name>
<servlet-class>com.zm.servlet.TestJson</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>testJson</servlet-name>
<url-pattern>/testJson</url-pattern>
</servlet-mapping>
jquery的ajax向后台servlet传递json类型的多维数组的更多相关文章
- ajax 请求 对json传的处理 Jquery 使用Ajax获取后台返回的Json数据后,页面处理
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Jquery 使用Ajax获取后台返回的Json数据后,页面处理
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【转】Jquery 使用Ajax获取后台返回的Json数据后,页面处理
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jquery通过AJAX从后台获取信息并显示在表格上的类
前一阵我写了:<jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中.>现在,我把他们处理了一下,不需要每次写代码了: 具体代码如下: //获取数据并显示数据表格 funct ...
- jquery通过AJAX从后台获取信息并显示在表格上,并支持行选中
不想用Easyui的样式,但是想要他的表格功能,本来一开始是要到网上找相关插件的,但是没找到就开始自己写,没想到这么简单. 后台代码:(这个不重要) public ActionResult GetDi ...
- jquery中ajax请求后台数据成功后既不执行success也不执行error解决方法
jquery中ajax请求后台数据成功后既不执行success也不执行error,此外系统报错:Uncaught SyntaxError: Unexpected identifier at Objec ...
- ajax请求、servlet返回json数据
ajax请求.servlet返回json数据 1.方式一 response.setcontenttype("text/html;charset=utf-8"); response. ...
- jquery的ajax异步请求接收返回json数据
http://www.jb51.net/article/51122.htm jquery的ajax异步请求接收返回json数据方法设置简单,一个是服务器处理程序是返回json数据,另一种就是ajax发 ...
- 用easyui从servlet传递json数据到前端页面的两种方法
用easyui从servlet传递json数据到前端页面的两种方法 两种方法获取的数据在servlet层传递的方法相同,下面为Servlet中代码,以查询表中所有信息为例. //重写doGet方法 p ...
随机推荐
- 开放封闭原则(OCP)
开放封闭原则 转:http://baike.baidu.com/view/2493421.htm转:http://dev.csdn.net/article/38/38826.shtm 开放封闭原则(O ...
- 【转】Linux网络编程入门
(一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...
- IPoint从自定义的投影坐标系转换到自定义的地理坐标系
IPoint pointStart = new PointClass(); pointStart = xyPolyline.FromPoint; ISpatialReferenceFactory pS ...
- DB Cache Reloaded Fix缓存不能被激活解决方法
1.创建wp-content/plugins/db-cache-reloaded-fix/cache目录. 2.将cache权限改为777. 3.拷贝wp-content/plugins/db-cac ...
- DTCMS通用分页列表
<%set DataTable newsList=get_article_list(channel, category_id, pagesize, page, "status=0&qu ...
- 关于socket阻塞与非阻塞情况下的recv、send、read、write返回值(转载)
1.阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 <0:出错,=0:连接关闭,>0接收到数据大小,特别:返回值 ...
- [ Database ] [ Sybase ] [ SQLServer ] sybase 與SQL Server的界接方式
目前我們有個專案Server A安裝了 SQL Server 2012,有個需求需要連線到另外一台Server B上的 Sybase 12.5的view, 先前試過了很多方法都無法連通.主要的原因是因 ...
- MySQL查询LIKE如何匹配下划线 通配符转义
MySQL查询时使用LIKE匹配下划线,您会发现连查询“%A_B%”时会出现“%A B%”和“%AB%”也查询出来了,这是因为下划线也被当作特殊字符,做了任意匹配转换了,所以,要想匹配下划线,那么就需 ...
- PHP随机生成广告图片的实例 代码
PHP随机生成广告图片: <?php /* +------------------------------------------------------------------+ | Mi ...
- ecshop改造读写分离配置与改造
前两天配置好了mysql主从方式,今天就拿ecshop练习读写分离.以下代码仅供学习参考,不成熟的地方,还需完善. <?php $db_name = "ecshop"; $p ...