资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
首先说下,这个问题弄了我两天,再次抱怨下中国网络上面找点技术真不容易,太杂,太乱。只能自己再总结总结。在这儿我也会把源代码分享给大家多话不说直接说案例:在说 json 之前我先说下,如果前台需要传一个或者两个参数到后台去,然后后台又返回一个到两个等不多的参数到前台来,当两边参数不多的情况下,我建议不要用 json,那样返而繁琐了,直接用 jquery ajax 或者 ajax 直接在 url 后台跟参数,后台接收就行,然后返回的时候就返回一个串,只不这该串用了自己的处理方法,通常就是拼接例如:周杰伦林俊杰.;传到前台直接用 js 来 spilt 下就行。我下面说的两个案例分别是前后台都需要 json 来互相传值,因为参数比较多,有 20 多个,并且有的参数还是一个数组案例 1:JQuery+ajax+json点击第一个按扭把 JSON 传到后台从后台取到 JSON,并拿到 user.name 值 tomJSP 页面:我只写 js 内容function login() var url = login.action; var params = logName:peiliang,password:1ab,age:22;$.ajax(type: post,url: url,dataType : json,data : params:JSON.stringify(params),success: function(data,textStatus)alert(data);/var d=age:22,logName:tom,password:1ab;var user = eval(data);$(#result).each(function()alert(name);$(this).html(welcome , +user.logName); ); ,error: function(xhr,status,errMsg)alert(操作失败!););解释 1:params:这个参数是需要自己拼接的,拼接也是有规律的,我在下面就找了网上的一段话介绍下:说白了可以理解为 model 里面有属性,属性也可以是一个 model,然后 model里面又可以有属性;也就是 1 维数组,2 维数组的概念。一、JSON 的一些基础知识。JSON 中对象通过“”来标识,一个“” 代表一个对象,如 “AreaId”:”123”,对象的值是键值对的形式(key:value )。“”,标识数组,数组内部各个数据之间通过“,”分割,如 “AreaId”:”123”,”AreaId”:”345”。很多情况下是对象数组,那就是这样:代码如下 复制代码“AreaId”:”123”,“AreaId”:”345”其实数组也是一个对象,上面的格式也可以写成这样:代码如下 复制代码“Area”:“AreaId”:”123”,“AreaId”:”345”这表示一个 Area 对象,他有两个子数据,每个子数据也是一个对象,每个子对象都是 AreaId。JSON 中字符串和字符的定义格式和一般的类 C 语言定义是类似的,双引号定义字符串,单引号定义字符。JSON 的键(Key)用双引号括起来,比如上面的“Area“和”AreaId“,都是用双引号括起来的,在一些语言中构造 JSON 字符串的时候,可以使用转义字符转义双引号。解释 2:这个地方用到了 JSON.stringify(params),就是把我们拼接的串转化成 JSON 对象,这个时候需要引入 json2.js 文件。解释 3:eval(data) 因为前后台交换只能通过串来,所以这个地方的 data 就是后台传过来json 的串,在这儿我们把它转化成 JSON 对象,方便取里面的值,下面的 user 就是我后台的model 名Struts2.xml 配置不多说Action 代码: 都有解释也不多说public String login() throws IOExceptionString jsonArrayString = ServletActionContext.getRequest().getParameter(params);System.out.println(parames:+jsonArrayString);/把串转化成json对象JSONArray jsonArray2= JSONArray.fromObject(jsonArrayString);/将josn数组转换成对应类的泛型集合List userList=JSONArray.toList(jsonArray2, User.class); System.out.println(userList.size();/多个对象的时候,直接取到某个对象,最外层的/List maps = json.getJSONArray(pei);/ Map map = maps.get(0); / System.out.println(map.get(logName);for(User u:userList)System.out.println(用户名:+u.getLogName();u.setLogName(tom);/把model转化成json串result = JSONObject.fromObject(u).toString(); System.out.println(result);ServletActionContext.getResponse().getWriter().write(result);return null;案例 2:Jquery.getJSON点击按扭 2,通过 JQuery.getJSON 往后台送一个JSON 串从后台拿到 JSON,然后取到相应的 user.name值 lucy前台 js需要注意是架包的问题:我这里面用了这引起架包,其中第一个好像没有用Jsp 页面信息function login2() var url = login2.action; var params = user.logName:peiliang,user.password:1ab,user.age:22;alert(params);$.getJSON(url,params,function callback(data) / convert to json object alert(data);var user = eval(+data+);/ $(#result).each(function()alert(name);$(this).html(welcome , + user.logName); ); ); 这上面不需要怎么解释,就是 JSON 串不需要转化 JSON 对象Struts.xml 配置这里用到的就是 struts 的 json,所以下面有讲需要添加 struts-json-plugin.jarAction 代码代码也很好看懂,不多解释,需要注意的就是 result 要添加 get set 方法具体在我使用 jquery.getJSON 的时候需要添加一些另外的架包,因为 struts2 中如果返回json 对象的时候如下图,会报如下错误java.lang.NoClassDefFoundError: com/opensymphony/xwork2/util/TextUtils 解决的办法就是要加两个架包2.1.8 搭配的 jar 可以在下载的 structs-2.1.8lib 文件夹下找到,分别是 structs-json-plugin-2.1.8.jar 、structs2-junit-plugin-2.1.8.jar 和 json-lib-2.1.jar 三个包。在我加完了架包之后又报这个错Unable to load configuration. - package - jar:file:/D:/webstudy/tomcat-6.0/webapps/struts2json/WEB-INF/lib/struts2-json-plugin-2.1.8.jar!/struts-plugin.xml:8:59解决办法如下:struts2-json-plugin-2.1.8.1.jar 中已经存在名为 json-default 的包名。 而 jsonplugin 中的 struts-plugin.xml中的名字也叫 json-default 两者冲突,所以出错了。 。 struts2.1.8 我没用过,你看一下这个 struts2-json-plugin-2.1.8.1.jar 是不是就是 struts2 的 json 插件包,如果是这样的话,你就可以把 jsonplugin-0.34.jar去掉了源代码在 CSDN 上面有,不好意思收个积分,因为我 CSDN 确实没有分,平时下个东西,蛋疼得紧。CSDN 地址:http:/download.csdn.net/detail/pei7932658/7247427多的我也就不说了,代码中有,代码我只是测试的东西,没有完善,只有会用就行,具体要细究,大家可以花点时间,我这里有几个网址可以参考下,我觉得对我有点用的http:/www.php100.com/html/program/jquery/2013/0905/5912.htmlhttp:/imwujianhao.blog.163.com/blog/static/163776830201066115125616/http:/www.iteye.com/problems/57175http:/blog.sina.com.cn/s/blog_85b859c90100uo7n.htmljava 对象转化成json对象http:/luckytjx.blog.163.com/blog/static/1408098272012625219531/Struts2 json plugin实战2http:/www.open-open.com/lib/view/open1328079550405.htmlDownload struts2-json-plugin-2.2.3.jarhttp:/www.java2s.com/Code/Jar/s/Downloadstruts2jsonplugin223jar.htm这里面有一些比较不错的文章http:/blog.csdn.net/smartsmile2012/article/details/17220413
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号