Ajax学习笔记四(Json)

一:json

1.json是什么

它是js提供的一种数据交换格式

2.json的语法

  {}:表示对象!
  属性名必须要用双引号括起来,单引号不行!!!
  属性值:
  - null
  - 数值
  - 字符串
  - 数组:用[]括起来
  - boolean值:truefalse

3.应用json

<script type="text/javascript">
window.onload=function (){
	  var person={'name':"zhangSan","age":18,"sex":"male"};
	  alert(person.name+","+person.age+","+person.sex);
}
</script>

二:json-lib的应用

1.作用

它可以把javaBean转换成json串

2.执行环境:

需要的jar包:

  • 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

3.应用

  1. 当map来用
JSONObject map1=new JSONObject();
		map1.put("name","张三");
		map1.put("age",15);
		map1.put("sex","男");
		System.out.println(map1.toString());
  1. 直接把对象转换成JSONObject
Person person=new Person("张三",18,"男");
		JSONObject map2=JSONObject.fromObject(person);
		System.out.println(map2.toString());
  1. 当list来用
Person p1=new Person("王五",45,"女");
		Person p2=new Person("赵六",12,"男");
		JSONArray list=new JSONArray();
		list.add(p1);
		list.add(p2);
		System.out.println(list.toString());
  1. 将list转换成JSONObject
List<Person> list1=new ArrayList<Person>();
		Person p3=new Person("孙悟空",45,"男");
		Person p4=new Person("猪八戒",45,"女");
		list1.add(p3);
		list1.add(p4);
		JSONArray array=JSONArray.fromObject(list1);
		System.out.println(array.toString());

三:打包ajax生成小工具

作用:使用ajax打包生成的小工具,就不用每次再次创建连接对象,就可以直接引用外部文件直接请求服务器,非常之方面,也非常之简单。

例子:
工具类:

function createXMLHttpRequest() {
	try {
		return new XMLHttpRequest();//大多数浏览器
	} catch (e) {
		try {
			return new ActiveObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				return new ActiveObject("Microsoft.XMLHTTP");

			} catch (e) {
				alert("哥们儿,你用的是什么浏览器啊?");
				throw e;

			}
		}
	}
}
/*
 * option具有下列几个参数
 */
///*请求方式*/method,
///*请求的url*/url,
///*是否异步*/asyn,
///* 请求体*/parms,
///*回调函数*/callback,
///*服务器响应数据转换成什么类型*/type
function ajax(option){
	/*
	 * 1.得到xmlHttp;
	 */
	var xmlHttp=createXMLHttpRequest();
	/*
	 * 2.打开连接
	 */
	 if(!option.method){//默认为GET请求
		 option.method="GET";
	 }
	 if(option.asyn==undefined){//默认为异步处理
		 option.asyn=true;
	 }
	 xmlHttp.open(option.method,option.url,option.type);
	/*
	 * 3.判断 是否为POST
	 */
	if("POST"==option.method){
		xmlHttp.setRequestHeader("Content-Type","aplication/x-www-form-urlencoded");
		
	}
	/*
	 * 4.发送请求
	 */
	xmlHttp.send(option.params);
	/*
	 * 5.注册监听
	 * 
	 */
	xmlHttp.onreadystatechange=function(){
		if(xmlHttp.readyState==4&&xmlHttp.status==200){//双重判断
			var data;
			//获取服务器响应的数据进行转换
			if(!option.type){//如果type没有默认值,当text处理
				data=xmlHttp.responseText;
			}
			else if(option.type=="xml"){
				data=xmlHttp.responseText;
			}else if(option.type=="text"){
				data=xmlHttp.responseText;
			}else if(option.type=="json"){
				var text=xmlHttp.responseText;
				data=eval("("+text+")");
			}
			option.callback(data);
		}
	}
	
}

应用类:

<script type="text/javascript">
window.onload=function(){
	var btn=document.getElementById("btn");
	btn.onclick=function(){
		/*
		  * 发送请求
		  
		*/
		ajax(
			  {
				url:"ServletA",
				type:"json",
				callback:function(data){
					document.getElementById("h3").innerHTML=data.name+","+data.age+","+data.sex;
				}
			}
		);
	}
}
原创文章 114 获赞 84 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44867340/article/details/105849656
今日推荐