Gson 常用用法

Gson下載的話大家可以去網上找下,下載jar加入到項目工程就可以使用。本文主要講Gson一些常用用法。

toJson就是轉爲Json,fromJson就是解析Json。

有:

一.數組類型與Gson之間的相互轉換

二.Bean對象 與Gson之間的相互轉換

三.List集合類型與 Json 轉換

四.Map與Gson,和List差不多


一.數組類型與Gson之間的相互轉換

	
	Gson gson = new Gson();
	int[] ints = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
	String[] strings= { "Onw", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten" };
		
	String intsJson = gson.toJson(ints);
	String stringsJson = gson.toJson(strings);

	System.out.println("intsJson --->>> " + intsJson);
	System.out.println("stringsJson --->>> " + stringsJson);

輸出結果爲
intsJson --->>> [1,2,3,4,5,6,7,8,9,10]
stringsJson --->>> ["Onw","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten"]

好像沒什麼變化,數組類型與Json間用的比較少。繼續看下面

二.Bean對象 與Gson之間的相互轉換

假如現在有個對象Person
public class Person {
	int age;
	String name;
	public Person(int age , String name) {
		// TODO Auto-generated constructor stub
		this.age = age;
		this.name = name;
	}
}

然後

Gson gson = new Gson();
Person person = new Person(23 , "Hong");
String personJson = gson.toJson(person);
System.out.println("PersonJson --->>>" + personJson);

輸出 PersonJson --->>>{"age":23,"name":"Hong"}

然後要把Json轉爲對象的話。這裏\" 才表示一個雙引號
Person personFromJson = gson.fromJson("{\"age\":23,\"name\":\"Hong\"}" , Person.class);


三.List集合類型與 Json 轉換

	List<Person> list = new ArrayList<Person>();
		for(int i = 0 ; i < 5 ; i++){
			list.add(new Person(i, "Hong" + i + i));
		}
	String listJson = gson.toJson(list);
		System.out.println("List >>--" + listJson );

輸出結果爲:List>>--[{"age":0,"name":"Hong00"},{"age":1,"name":"Hong11"},{"age":2,"name":"Hong22"},{"age":3,"name":"Hong33"},{"age":4,"name":"Hong44"}]
是不是感覺很好用!

List的JSON再轉爲List<> 的話 ,需要用到 Type .Type 爲 java.lang.reflect.Type 包下的

  Type type = new TypeToken<List<Person>>(){}.getType();
        List<Person> personList = gson.fromJson(listJson , type);
        for (Person person : personList) {
            System.out.println("person age  = " + person.age);
        }

輸出結果就不貼了

四.Map與Gson,和List差不多

	Map<String, String> colours = new HashMap<String, String>();
        colours.put("BLACK", "#000000");
        colours.put("RED", "#FF0000");
        colours.put("GREEN", "#008000");
   
        String mapJson = gson.toJson(colours);
        System.out.println("MapJson = " + mapJson);
輸出結果
MapJson = {"RED":"#FF0000","BLACK":"#000000","GREEN":"#008000"}


Json轉爲Map

Type type = new TypeToken<Map<String, String>>(){}.getType();
        Map<String, String> map = gson.fromJson(mapJson, type);
        for (String key : map.keySet()) {
            System.out.println("map.get = " + map.get(key));
        }

細心對比發現主要是TypeToke裏面參數變了另一個而已。

Gson常用的用法大概就是這樣。







發佈了23 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章