Gson的使用

一、將Json類型字符串轉換成對象。

假設字符串如下:

{"name":"中國","province":[{"name":"黑龍江","cities":{"city":["哈爾濱","大慶"]}},{"name":"廣東","cities":{"city":["廣州","深圳","珠海"]}},"name":"臺灣","cities":{"city":["臺北","高雄"]}},{"name":"新疆","cities":{"city":["烏魯木齊"]}}]}

建立對象是關鍵。分析字符串的特點:最外面包括兩個字段,name和province,name是字符串類型,province是個Province類型集合,可以建立一個country類。

Country類

public class Country {
	private String name;
	private ArrayList<Province> province;
	public Country() {
	}
	public Country(String name, ArrayList<Province> province) {
		super();
		this.name = name;
		this.province = province;
	}
	@Override
	public String toString() {
		return "Country [name=" + name + ", province=" + province + "]";
	}
}

Province類裏面包括兩個字段,String的name和一個Cities類型對象。注意Cities不是集合。

Province類

public class Province {
	private String name;
	private Cities cities;
	public Province(String name, Cities cities) {
		super();
		this.name = name;
		this.cities = cities;
	}
	@Override
	public String toString() {
		return "Province [name=" + name + ", cities=" + cities + "]";
	}
}
Cities類有一個集合city,類型是String

Cities類

public class Cities {
	private ArrayList<String> city;
	public Cities(ArrayList<String> city) {
		super();
		this.city = city;
	}
	@Override
	public String toString() {
		return "Cities [city=" + city + "]";
	}
}

這樣就建好了各個實體類。

//實例化一個Gson對象、

Gson gson = new Gson();

Country country = new Country();

// 將一個Json格式的字符串轉換成對象
country = gson.fromJson(jsonString, Country.class);
txtView.setText(country.toString());

二、利用上面的對象,將對象轉換成Json類型字符串。主要代碼如下:

// 一個城市集合
		ArrayList<String> cities = new ArrayList<String>();
		// 一個省的集合
		ArrayList<Province> provinces = new ArrayList<Province>();
		// 加入一些紐約州的城市
		cities.add("紐約市");
		cities.add("水牛城");
		cities.add("楊克斯");
		// 創建紐約州
		Province province = new Province("紐約州", new Cities(cities));
		// 將紐約州加入到州集合
		provinces.add(province);

		cities = new ArrayList<String>();
		cities.add("哥倫布");
		cities.add("克里夫蘭");
		province = new Province("俄亥俄州", new Cities(cities));
		provinces.add(province);

		cities = new ArrayList<String>();
		cities.add("奧林匹亞市");
		cities.add("西雅圖市");
		province = new Province("華盛頓州", new Cities(cities));
		provinces.add(province);
		// 實例化一個國家
		Country country1 = new Country("美國", provinces);
		// 將一個對象轉換成Json形式的字符串
		String json = gson.toJson(country1);
		txtView1.setText(json);




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章