Ajax和JSON简单应用示例
最后更新日:2014年12月25日
前端:引入JQuery //如果用①的方式,那么url只要写为'/Test/restApply.do?method=checkRepeat' //然后加上: //data={username:username,worknum:worknum,restType:restType}; //jQuery.ajaxSettings.traditional = true; $.ajax({ url : '/Test/restApply.do?method=checkRepeat&checkValue1='+checkValue1 +'&checkValue2='+checkValue2+'&worknum='+worknum, type : 'POST', dataType : 'json', //data:data,//注① //表示同步执行,不然是异步执行 async : false, error : function() { alert('Operate Failed!'); }, success : function(json) { //用对象.属性的方式输出出来 alert(json.a); } }); 后端:引入JSONObject和JSONArray ①将数据放入JSONObject或JSONArray或两者结合 ②将JSONObject的数据转为JSONObject.fromObject(jo) 或将JSONArray的数据转为JSONArray.fromObject(ja) ③是JSONObject jo或JSONArray ja response.setCharacterEncoding("utf-8"); response.setHeader("Cache-Control", "no-cache"); PrintWriter printWriter = response.getWriter(); printWriter.write(jo.toString());//printWriter.write(ja.toString());
注:
A、如果不想用printWriter.write的方式可以写为:
①在方法上加上@ResponseBody注解
②方法返回值由void变为String
③最后将JSONObject的值toString()
B、如果不想用request.getParameter()的方式接受参数可以写为:
①前台变为
dataType:'json'
data:JSON.stringify(data)
contentType:'application/json'
②后台为
在方法的参数里多加一个注解参数:@RequestBodyStringrb
但是,有个问题中文会乱码,要处理下!!!
补充:
实体类Person
public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
JSON转化为实体bean
import net.sf.json.JSONObject; public class Test { public static void main(String[] args) { /** 1.这个data可能是通过request.getParameter(data)得到的 2.这个request.getParameter(data)中的data来自页面的形式可能为: var a = "张三"; var b = 35; var d={name:a,age:b}; jQuery.ajaxSettings.traditional = true; $.ajax({ url : '/xxx/xxxx?method=xxxxx', type : 'POST', dataType : 'json', data:{data:JSON.stringify(d)}, async : false, error : function() { //TODO }, success : function(json) { if (json.resultFlag==false){ //TODO }else{ //TODO } } }); */ String data = "{\"name\":\"张三\",\"age\":\"35\"}"; JSONObject jo = JSONObject.fromObject(data); //有时你的data并不是一个实体bean对象,那么就老老实实的: //jo.get("name");jo.get("age"); Person p = (Person)JSONObject.toBean(jo, Person.class); System.out.println(p.getName()); System.out.println(p.getAge()); } }
相关推荐
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16
curiousL 2020-08-03
TONIYH 2020-07-22
时光如瑾雨微凉 2020-07-19
83510998 2020-07-18
坚持着执着 2020-07-16
jiaguoquan00 2020-07-07
李永毅 2020-07-05
坚持着执着 2020-07-05