JSON介紹

什麼是json,javaScript Object Notation 是一種javascript輕量級數據交互格式,主要應用於Ajax編程 

第一次接觸到JSON是在項目中運用EXT中的Ajax和java後臺交互的數據格式,當時沒怎麼在意,因爲很簡單,用起來順手,項目也是半路接手就直接拿過來用了,也沒怎麼注意。現在想想JSON火那也正是這個東西簡單上手,而且從他的官方網站也能看的出來他很簡單但很實用。http://www.json.org/json-zh.html

JSON只用兩種數據格式

1、數組形式

       [值1,值2,值3......]    JSONArray

2、鍵值對形式和java中的map很像,當然他們也是可以相互轉換的

      {key:123,key2:456......} JSONObject

注意的鍵值對是用“{}”,數組的是“[]”

同時上面兩種格式是可以相互嵌套的,比如:

[{name:[123,12,43],sex:[1,0,1]},{name:[123,12,43],sex:[1,0,1]}]等等的格式,在json的官網上有幾張圖,畫出了這幾種格式的狀況。


下面說說json在java中的用法,在官網上指出了運用json的有和幾種方式,比如:org.json,json-lib,JSON Tools,XStream等,我感覺差不多吧,我只用過org.json和json-lib裏面主要的方法就是JSONArray和JSONObject。他們中的方法就不細說了,官網上就有API可以去看看就明白了。不過json-lib引入的包要多一點,這個官網上說了要5個包吧

  • 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
其實我個人感覺org.json要好用點,他只需要一個包org.json.jar.

下面簡單的寫了個例子運用一下json

@Test
	public void demo1(){
		// 轉換數組 到 json格式字符串
		String[] arr = {"sada","fdssd","dfsd","sadas"};
		JSONArray jsonArray =  JSONArray.fromObject(arr);
		System.out.println(jsonArray.toString());
	}
	
	@Test
	public void demo2(){
		// 轉換list到json
		List<Product> products = new ArrayList<Product>();
		Product p1 = new Product();
		p1.setName("三星手機");
		p1.setPrice(3999);
		
		Product p2 = new Product();
		p2.setName("聯想筆記本");
		p2.setPrice(5000);
		
		products.add(p1);
		products.add(p2);
		
		JSONArray jsonArray = JSONArray.fromObject(products);
		System.out.println(jsonArray);
	}
	
	@Test
	public void demo3(){
		// 轉換對象 到 json
		Product p1 = new Product();
		p1.setName("三星手機");
		p1.setPrice(3999);
		
		JSONObject jsonObject = JSONObject.fromObject(p1);
		System.out.println(jsonObject);
	}
	
	@Test
	public void demo4(){
		// 通過JSONConfig對象 配置對象哪些屬性不參與轉換 
		Product p1 = new Product();
		p1.setName("三星手機");
		p1.setPrice(3999);
		// 不想手機 價格存在 於 結果json中
		JsonConfig jsonConfig = new JsonConfig();
		jsonConfig.setExcludes(new String[]{"price"});
		
		JSONObject jsonObject = JSONObject.fromObject(p1, jsonConfig);
		System.out.println(jsonObject);
	}
	
	@Test
	public void demo5(){
		//轉換map到json
		Map<String, String> map = new HashMap<String, String>();
		map.put("name1", "wangwy");
		map.put("name2", "shiqq");
		map.put("name3", "liuj");
		JSONObject json = JSONObject.fromObject(map);
		System.out.println(json);
	}

當然項目中我們用的比這個要複雜的多,有時候需要我們手動去拼寫json串,只要牢記json的兩種書寫格式就可以了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章