`

jquery 解析 java 后台的 json数据

阅读更多

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:

  • jakarta commons-lang 2.5
  • jakarta commons-beanutils 1.8.0
  • jakarta commons-collections 3.2.1
  • jakarta commons-logging 1.1.1
  • ezmorph 1.0.6

这个有于在一个现成的项目中应用,我查了一下就好像少最后一个,加了进去。

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:'6110',value:'商洛市'}]";  
28.var json=eval(jsondata);  
29.$.each(json,function(i,n){  
30.alert(json[i].name);  
31.alert(json[i].value);//根据索引取值  
32.});  
33.//json数据字符 不需要转换  
34.var json={"Products":[   
35.{"orderid":"11077","customerid":"RATTC"},   
36.{"orderid":"11078","customerid":"RATT"}   
37.],   
38."Img":[{"id":"12345","url"   
39.:"image/1.jpg"}   
40.]};   
41.$.each(json.Products,function(i,n){  
42.   alert(n.orderid);  
43.})  

 

 

分享到:
评论
1 楼 丹寺丁 2013-11-21  

相关推荐

    jquery ajax 向后台传递数组参数示例

    需求: 在JS中向后台传递数组参数 分析: JS中的数组是弱类型的可以放任何类型... 但是可以使用JSON字符串来实现,在后台把JSON字符串解析成JAVA对象。 也许,你要说如果是复合对象怎么办,比如如下: 代码如下: public

    ajax响应json字符串和json数组的实例(详解)

    最近上班太忙,晚上抽空整理一下ajax请求中,后台返回json字符串和json数组的场景,以及前台的处理示例。 直接看代码。 json字符串的后台响应 package com.ajax; import java.io.IOException; import java.io....

    java在线教育系统源码 springboot考试系统源码+VUE前后端分离

    前端页面:html +vue.js 形式 jquery ajax 异步跨域 json 格式数据交互 前后分离,前后台分开部署 功能介绍: 题库管理 1.图片库:创建文件目录,维护图片,供题库选择调用 2.单选题:维护单选试题,试题题目,选项...

    点餐系统 包括android客户端-后台服务

    - 使用PHP+MySql 利用Web技术(html javascript jquery Bootstrap等)开发后台管理界面及其功能; - 使用Java进行Android客户端开发(用户注册登陆,Listview展示,http请求,JSON解析,图片下载等); 作品仅用于学习和...

    java命名规范 开发规范

    3. 解析该HTTP请求返回值(XML或JSON); 4. 响应结果; 5. 测试; 备注: 开发一个需要对第三方应用发布的WebService 步骤: a. 开发WebService接口,@WebService进行注解该接口; b. 开发WebService接口实现类...

    比较Ajax的三种实现及JSON解析

    2、 jquery1.3.2.min.js 3、 json2.js 后台处理程序(Servlet),访问路径servlet/testAjax: Java代码 package ajax.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet....

    msmkSystem:点餐系统 包括android客户端-后台服务

    用户利用手机登录系统后...使用PHP+MySql 利用Web技术(html javascript jquery Bootstrap等)开发后台管理界面及其功能; 使用Java进行Android客户端开发(用户注册登陆,Listview展示,http请求,JSON解析,图片下载等);

    简易学习社交平台

    用户请求主页时对后台请求,后台返回JSON数据供浏览器解析并向用户展示,利用丰富的文章内容吸引用户注册登录评论文章,对于用户的请求,后台service业务层都有相对应的curd功能为用户提供服务,后台servlet逻辑层...

    javaee底层源码-myframe:后端Java,前端JavaScript,将开源框架的思想,实现在自己的个人项目中,从而提升自己的编程水平

    本项目按java后台功能划分为5个模块: frame-util :为其他模块提供基础工具功能,如解析json,对象分析,HTTP客户端,Class扫描等; frame-cdi :如同spring容器那样,实现了反转控制和依赖注入功能,作为应用程序...

    基于springboot,采用mybatis和mapper3插件,基于shiro的sso cookies单机实现+源代码+文档说

    10. 基于 shiro 改造的 sso 单机实现,登录生成 token 存储在用户 cookies 中,请求解析 cookies,以解析成功作为标识。 11. 交互上使用 layui,使用第三方功能。 12. 热刷新实体 mapper.xml文件 MapperRefresh.java...

    史上最好传智播客就业班.net培训教程60G 不下会后悔

    自己动手写Web服务器(Socket、多线程)、ashx模式Web开发、ViewState、...数据绑定控件(ObjectDataSource、列表类绑定控件、GridView、FormView、ListView、Repeater、高效率分页)、CKEditor、Membership、缓存、...

    xheditor-1.1.14

    参数:可定义多个JSON对象数组,示例如下:{qq:{name:'QQ',count:55,width:25,height:25,line:11},msn:{name:'MSN',count:40,width:22,height:22,line:8}} name:表情分组名 count:表情数量 list:表情列表,例...

Global site tag (gtag.js) - Google Analytics