由于项目需要通过ajax得到后台的List对象里面的值,由于没有接触过json所以前期我只能先传字符串再在js里截取子串实现。闲暇时间摸索了一下关于json接受List对象的方法,步骤如下:
1.首先下载json所以依赖的包, Json-lib 最新版 json-lib-2.3-jdk15.jar,其官方网站是: http://json-lib.sourceforge.net/可以直接download,细心的你会发现其网站页面里面有提示它还需要其他包:
Json-lib requires (at least) the following dependencies in your classpath:
•jakarta commons-lang 2.4
•jakarta commons-beanutils 1.7.0
•jakarta commons-collections 3.2
•jakarta commons-logging 1.1.1
•ezmorph 1.0.6
下载地址分别是:
http://commons.apache.org/lang/
http://commons.apache.org/beanutils/
http://commons.apache.org/collections/
http://commons.apache.org/logging/
http://ezmorph.sourceforge.net/
2.首先先见一个小web项目
先建一个User类:
再建一个servlet
3.建立ajax实现
这里为了快速实现用的是jquery实现的。
1.首先下载json所以依赖的包, Json-lib 最新版 json-lib-2.3-jdk15.jar,其官方网站是: http://json-lib.sourceforge.net/可以直接download,细心的你会发现其网站页面里面有提示它还需要其他包:
Json-lib requires (at least) the following dependencies in your classpath:
•jakarta commons-lang 2.4
•jakarta commons-beanutils 1.7.0
•jakarta commons-collections 3.2
•jakarta commons-logging 1.1.1
•ezmorph 1.0.6
下载地址分别是:
http://commons.apache.org/lang/
http://commons.apache.org/beanutils/
http://commons.apache.org/collections/
http://commons.apache.org/logging/
http://ezmorph.sourceforge.net/
2.首先先见一个小web项目
先建一个User类:
- packagecom.json;
- publicclassUser{
- Stringusername;
- Stringpassword;
- publicStringgetUsername(){
- returnusername;
- }
- publicvoidsetUsername(Stringusername){
- this.username=username;
- }
- publicStringgetPassword(){
- returnpassword;
- }
- publicvoidsetPassword(Stringpassword){
- this.password=password;
- }
- }
再建一个servlet
- packagecom.json;
- importjava.io.IOException;
- importjava.io.PrintWriter;
- importjava.util.ArrayList;
- importjava.util.List;
- importjavax.servlet.ServletException;
- importjavax.servlet.http.HttpServlet;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- importnet.sf.json.JSONArray;
- publicclassTestJsonextendsHttpServlet{
- publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsServletException,IOException{
- doPost(request,response);
- }
- publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
- throwsServletException,IOException{
- response.setContentType("text/html");
- Stringstr=request.getParameter("name");//得到ajax传递过来的paramater
- System.out.print(str);
- PrintWriterout=response.getWriter();
- Listlist=newArrayList();//传递List
- Mapm=newHashMap();//传递Map
- Useru1=newUser();
- u1.setUsername("zah");
- u1.setPassword("123");
- Useru2=newUser();
- u2.setUsername("ztf");
- u2.setPassword("456");
- list.add(u1);//添加User对象
- list.add(u2);//添加User对象
- m.put("u1",u1);
- m.put("u2",u2);
- JSONArrayjsonArray2=JSONArray.fromObject(list);
- //把java数组转化成转化成json对象
- JSONObjectjo=JSONObject.fromObject(m);//转化Map对象
- out.print(jsonArray2);//返给ajax请求
- out.print(jo);//返给ajax请求
- }
- }
- 配置好web.xml中的servlet映射,这一步就略了。
3.建立ajax实现
这里为了快速实现用的是jquery实现的。
- <scripttype="text/javascript"src="js/jquery.js"></script>
- <scripttype="text/javascript">
- functiontest(){
- $.ajax({
- type:"POST",//请求方式
- url:"testjson",//请求路径
- cache:false,
- data:"name=zah",//传参
- dataType:'json',//返回值类型
- success:function(json){
- alert(json[0].username+""json[0].password);//弹出返回过来的List对象
- }
- });
- }
- </script>
- </head>
- <body>
- <inputtype="button"name="b"value="测试"οnclick=test()>
- </body>