一、將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);