jquery 解析 java 后台的 json数据

本文介绍如何使用jQuery和AJAX从Struts2框架获取JSON数据,并详细解释了两种不同的JSON数据创建方法。同时,文章还对比了jQuery、AJAX和JSON与DWR框架在数据处理上的差异。最后,通过实例演示了如何解析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.})  

 

 

本课题设计了一种利用Matlab平台开发的植物叶片健康状态识别方案,重点融合了色彩纹理双重特征以实现对叶片病害的自动化判别。该系统构建了直观的图形操作界面,便于用户提交叶片影像并快速获得分析结论。Matlab作为具备高效数值计算数据处理能力的工具,在图像分析模式分类领域应用广泛,本项目正是借助其功能解决农业病害监的实际问题。 在色彩特征分析方面,叶片影像的颜色分布常其生理状态密切相关。通常,健康的叶片呈现绿色,而出现黄化、褐变等异常色彩往往指示病害或虫害的发生。Matlab提供了一系列图像处理函数,例如可通过色彩空间转换直方图统计来量化颜色属性。通过计算各颜色通道的统计参数(如均值、标准差及主成分等),能够提取具有判别力的色彩特征,从而为不同病害类别的区分提供依据。 纹理特征则用于描述叶片表面的微观结构形态变化,如病斑、皱缩或裂纹等。Matlab中的灰度共生矩阵计算函数可用于提取对比度、均匀性、相关性等纹理指标。此外,局部二值模式Gabor滤波等方法也能从多尺度刻画纹理细节,进一步增强病害识别的鲁棒性。 系统的人机交互界面基于Matlab的图形用户界面开发环境实现。用户可通过该界面上传待检图像,系统将自动执行图像预处理、特征抽取分类判断。采用的分类模型包括支持向量机、决策树等机器学习方法,通过对已标注样本的训练,模型能够依据新图像的特征向量预其所属的病害类别。 此类课题设计有助于深化对Matlab编程、图像处理技术模式识别原理的理解。通过完整实现从特征提取到分类决策的流程,学生能够将理论知识实际应用相结合,提升解决复杂工程问题的能力。总体而言,该叶片病害检系统涵盖了图像分析、特征融合、分类算法及界面开发等多个技术环节,为学习掌握基于Matlab的智能检技术提供了综合性实践案例。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值