1. 程式人生 > >ajax之json資料交換格式學習

ajax之json資料交換格式學習

日期:2018—10—4

今日學習將Javabean物件轉換成json資料物件
	1、學習ajax資料交換
	2、學習如何將Javabean物件轉換成json資料物件
	
目前,學習了ajax響應的資料格式有3種(字串,xml,json),今晚學習ajax中最受歡迎的一種資料交換格式:json;json資料交換格式簡單的說就是將從伺服器中查詢並獲取到的Javabean物件的資料轉換成json資料格式響應給客戶端。今天晚上就學習如何將Javabean資料格式轉換成json資料格式響應給客戶端
一、json簡介
		1、什麼是json?
			說簡單點,json就是js提供的一種資料交換格式,目前在ajax中最受歡迎。
		2、json語法
			{}:這對大括號是表示一個物件
				(1) 其中屬性名必須使用雙引號括起來,單引號不可以!
				(2) 其中屬性值可以是以下幾種
					a.null
					b.數值:數值不用雙引號
					c.字串
					d.陣列:陣列需要使用[]括起來
					e.boolean值:true和false
			比如:
				var person = {"name":"ZhangSan" , "age":18 , "sex":"male"};
		3、 json與xml比較
			可讀性:xml勝出
			解析難度:json本身就是js物件,所以簡單
			流行度:xml已經流行好多年了,在ajax領域,json更受歡迎
二、如何將Javabean轉換成json呢?
	在這裡,我們直接使用一個工具來解決,即json-lib.jar包。這個包有什麼用呢?簡單的說就是使用其中的一些方法將Javabean轉換成json資料格式。
	1.專案中json所使用的jar包
		 - 	commons-beanutils-1.8.3.jar
		 - 	commons-collections-3.2.1.jar
		 - 	commons-lang-2.5.jar
		 - 	commons-logging-1.1.1.jar
		 - 	ezmorph-1.0.6.jar
		 - 	json-lib-2.4-jdk15.jar
		 - 	xom-1.1.jar
		 這裡的jar包作為學習已經夠用,就不在列出其他jar包
	2.工具中的核心類介紹
		JSONObject 類:該類繼承了Map類,其實質就是操作Map
			1).toString():該方法將map物件轉換成json物件,並轉換成字串型別
			2).fromObject(object):這個方法將Javabean物件轉換成json物件,引數object物件是例項物件。
		JSONArray類:該類則繼承了List類
			1).toString():該方法將List物件轉換成json物件,並轉換成字串型別
			2).fromObject(list):該方法將list轉換成json物件
	3.程式碼例項
	public void test01() {
				JSONObject map = new JSONObject();
				map.put("name", "ZhangSan");
				map.put("age", 18);
				map.put("sex", "famle");
					
				String s = map.toString();	//使用map的toString()方法,直接將json物件轉換成字串
				System.out.println(s);
					
					/**
					 * 結果:
					 * 	{"name":"ZhangSan","age":18,"sex":"famle"}
					 */
				} 
				
				@Test
				public void test02() {
					Person p = new Person("zhangSan",23,"male");
					JSONObject map = JSONObject.fromObject(p);	//這個方法可以直接將javab物件轉換成json物件
					System.out.println(map.toString());
					
					/**
					 * 結果:
					 * 	{"age":23,"name":"zhangSan","sex":"male"}
					 */
				}
				
				@Test
				public void test03() {
					Person p1 = new Person("zhangSan",23,"famale");
					Person p2 = new Person("liSi",24,"male");
					
					JSONArray arr = new JSONArray();
					arr.add(p1);
					arr.add(p2);
					System.out.println(arr.toString());
					
					/**
					 * 結果:
					 * 	[{"age":23,"name":"zhangSan","sex":"famale"},
					 * 	 {"age":24,"name":"liSi","sex":"male"}]
					 */
				}
				@Test
				public void test04() {
					Person p1 = new Person("zhangSan",23,"famale");
					Person p2 = new Person("liSi",24,"male");
					List<Person> listPerson = new ArrayList<Person>();
					listPerson.add(p1);
					listPerson.add(p2);
					
					System.out.println(JSONArray.fromObject(listPerson));
					
					/**
					 * 結果:
					 * [{"age":23,"name":"zhangSan","sex":"famale"},
					 *  {"age":24,"name":"liSi","sex":"male"}]
					 */
				}