第一部分 json串
{
"error": 0,
"status": "success",
"date": "2014-05-10",
"results": [
{
"currentCity": "南京",
"weather_data": [
{
"date": "週六(今天, 實時:19℃)",
"dayPictureUrl": "http://api.map.baidu.com/images/weather/day/dayu.png",
"nightPictureUrl": "http://api.map.baidu.com/images/weather/night/dayu.png",
"weather": "大雨",
"wind": "東南風5-6級",
"temperature": "18℃"
},
{
"date": "週日",
"dayPictureUrl": "http://api.map.baidu.com/images/weather/day/zhenyu.png",
"nightPictureUrl": "http://api.map.baidu.com/images/weather/night/duoyun.png",
"weather": "陣雨轉多雲",
"wind": "西北風4-5級",
"temperature": "21 ~ 14℃"
}
]
}
]
}
第二部分 JavaBean部分
public class JsonBean {
//1、內部嵌套的類必須是static的,要不然解析會出錯;
//2、類裏面的屬性名必須跟Json字段裏面的Key是一模一樣的;
//3、內部嵌套的用[]括起來的部分是一個List,所以定義爲 public List<B> b,而只用{}嵌套的就定義爲 public C c
public String error;
public String status;
public String date;
public List<City> results;
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public List<City> getResults() {
return results;
}
public void setResults(List<City> results) {
this.results = results;
}
public static class City {
public String currentCity;
public List<weather> weather_data;
public String getCurrentCity() {
return currentCity;
}
public void setCurrentCity(String currentCity) {
this.currentCity = currentCity;
}
public List<weather> getWeather_data() {
return weather_data;
}
public void setWeather_data(List<weather> weather_datas) {
this.weather_data = weather_datas;
}
}
public static class weather {
public String date;
public String dayPictureUrl;
public String nightPictureUrl;
public String weather;
public String wind;
public String temperature;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getDayPictureUrl() {
return dayPictureUrl;
}
public void setDayPictureUrl(String dayPictureUrl) {
this.dayPictureUrl = dayPictureUrl;
}
public String getNightPictureUrl() {
return nightPictureUrl;
}
public void setNightPictureUrl(String nightPictureUrl) {
this.nightPictureUrl = nightPictureUrl;
}
public String getWeather() {
return weather;
}
public void setWeather(String weather) {
this.weather = weather;
}
public String getWind() {
return wind;
}
public void setWind(String wind) {
this.wind = wind;
}
public String getTemperature() {
return temperature;
}
public void setTemperature(String temperature) {
this.temperature = temperature;
}
}
}
第三部分 Activity部分
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<JsonBean>() {
}.getType();
try {
//將json串轉換爲javaBean
JsonBean jsonBean = gson.fromJson(getAccetsString(),type);
} catch (JSONException e) {
e.printStackTrace();
}
}
//加載assets中的json文件
public String getAccetsString() throws JSONException {
AssetManager assetManager = getAssets();
String[] files = null;
InputStream inputStream = null;
try {
inputStream = assetManager.open("json.txt");
} catch (Exception e) {
Log.e("tag", e.getMessage());
}
String result = readTextFile(inputStream);
return result;
}
private String readTextFile(InputStream inputStream) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte buf[] = new byte[1024];
int len;
try {
while ((len = inputStream.read(buf)) != -1) {
outputStream.write(buf, 0, len);
}
outputStream.close();
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return outputStream.toString();
}
}