日期:2014-05-16 浏览次数:20334 次
1、初次接触jquery 与 json ,希望大家有点帮助
前台应用ajax 到后台去取json数据
??
$.ajax({ type: "POST", url: "ResourseAction!showTables.action", data:"",
async:false, success: function(jsonData){ var json = eval(jsonData); $.each(json,function(i,n){ alert(json[i].name+' '+json[i].value) alert(n.name+' '+n.value); }); } });
?
上面的两个alert打印的结果是一样的。
?
一开始向应用struts2的一个json插件,但是由于现在的这个框架很乱了,没有扩展性,所以就还是应用最原始的方法,struts2的json插件在官网上有个很好的例子:https://cwiki.apache.org/confluence/display/WW/JSON%20Plugin讲的很全面
要想在java中应用json 需要 json-lib.*.jar ,另外官网上是这样的
Json-lib requires (at least) the following dependencies in your classpath:
这个有于在一个现成的项目中应用,我查了一下就好像少最后一个,加了进去。
java 方面代码?,提供了两种方法,对于json真的不熟,有熟悉的还望赐教。但是结果出来了!
/** * 抽取表名,用json返回到界面 * @return */ public String showTables(){ //第一种方法 /*JSONObject json = new JSONObject(); JSONArray jsonArray = new JSONArray(); json.element("name", "table1"); json.element("value", "table1"); jsonArray.element(json); json = new JSONObject(); json.element("name", "table2"); json.element("value", "table2"); jsonArray.element(json); json = new JSONObject(); json.element("name", "table3"); json.element("value", "table3"); jsonArray.element(json); PrintWriter out= null; try { HttpServletResponse response = ServletActionContext.getResponse(); out = response.getWriter(); System.out.println("json:"+jsonArray); out.println(jsonArray); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ //上述打印内容为: json:[{"name":"table1","value":"table1"},{"name":"table2","value":"table2"},{"name":"table3","value":"table3"}] //第二种方法 StringBuffer bf = new StringBuffer(""); bf.append("["); bf.append("{'name':'table1','value':'table1'},"); bf.append("{'name':'table2','value':'table2'}"); bf.append("]"); PrintWriter out= null; HttpServletResponse response = ServletActionContext.getResponse(); try { out = response.getWriter(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("json:"+bf); out.println(bf); //上述打印内容为: json:[{'name':'table1','value':'table1'},{'name':'table2','value':'table2'}] return null; }
第二种方法前台调用 var json = eval(data); ??????????? $.each(json,function(i,n){ ????????????? //alert(json[i].name);?????????????????? ??????????? });?? ?
?
不过个人认为,jquery + ajax + json 不如一个dwr就直接给解决了。
?
下面是在别人网站上粘贴的一下东西
01.jquery解析json数据: 02.var data=" 03.{ 04.root: 05.[ 06.{name:'1',value:'0'}, 07.{name:'6101',value:'北京市'}, 08.{name:'6102',value:'天津市'}, 09.{name:'6103',value:'上海市'}, 10.{name:'6104',value:'重庆市'}, 11.{name:'6105',value:'渭南市'}, 12.{name:'6106',value:'延安市'}, 13.{name:'6107',value:'汉中市'}, 14.{name:'6108',value:'榆林市'}, 15.{name:'6109',value:'安康市'}, 16.{name:'6110',value:'商洛市'} 17.] 18.}"; 19.//data为字符串类型 则要将字符串类型转换成json数据类型 20.var jsondatas=eval("("+data+")"); 21.$.each(jsondatas.root,function(i,n){ 22.alert("name"+n.name+"value"+n.value); 23.} 24.) 25.//以下为数组类型字符串 转换成json 字符串 解析 26. //数组形式的json字符串 27. var jsondata="[{name:'1',value:'0'}, {name:'6101',value:'西安市'}, {name:'6102',value:'铜川市'}, {name:'6103',value:'宝鸡市'}, {name:'6104',value:'咸阳市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'汉中市'}, {name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6