1.网络上的json对象
{"desc":"OK","status":1000,"data":{"wendu":"-1","ganmao":"昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。","forecast":[{"fengxiang":"无持续风向","fengli":"微风级","high":"高温 4℃","type":"霾","low":"低温 -4℃","date":"29日星期二"},{"fengxiang":"无持续风向","fengli":"3-4级","high":"高温 5℃","type":"晴","low":"低温 -6℃","date":"30日星期三"},{"fengxiang":"无持续风向","fengli":"微风级","high":"高温 4℃","type":"多云","low":"低温 -6℃","date":"31日星期四"},{"fengxiang":"无持续风向","fengli":"微风级","high":"高温 4℃","type":"晴","low":"低温 -4℃","date":"1日星期五"},{"fengxiang":"无持续风向","fengli":"微风级","high":"高温 5℃","type":"晴","low":"低温 -4℃","date":"2日星期六"}],"yesterday":{"fl":"微风","fx":"无持续风向","high":"高温 3℃","type":"晴","low":"低温 -5℃","date":"28日星期一"},"aqi":"421","city":"北京"}}
2.MainActivity.java
package com.exale.asynctasktest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.exale.day7asynctasktest.R;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
private ImageView imageView;
int count = 0;
private TextView _tTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
_tTextView = (TextView) findViewById(R.id.show);
}
public void showjson1(View view) {
MyAsyncTask myAsyncTask = new MyAsyncTask();
myAsyncTask.execute("http://wthrcdn.etouch.cn/weather_mini?city=%E5%8C%97%E4%BA%AC");
}
public class MyAsyncTask extends AsyncTask<String, Void, JSONObject>{
private JSONObject obj;
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
Log.e("MyAsyncTask", "onPreExecute");
}
@Override
protected JSONObject doInBackground(String... params) {
// TODO Auto-generated method stub
String urlString =params[0];
try {
URL url = new URL("http://wthrcdn.etouch.cn/weather_mini?city=%E5%8C%97%E4%BA%AC");
HttpURLConnection conn= (HttpURLConnection) url.openConnection();
InputStream inputStream = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,"UTF-8"));
String buf="";
while((buf = br.readLine())!=null){
Log.i("a",buf);
obj = new JSONObject(buf);
Log.i("a",obj.toString());
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return obj;
}
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
// Toast.makeText(MainActivity.this, "onProgressUpdate", 0).show();
Log.e("MyAsyncTask", "onProgressUpdate");
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(JSONObject result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
MyJson mJson= new MyJson();
try {
mJson.setDesc(result.getString("desc"));
String descString=mJson.getDesc();
Log.i("a",descString );
mJson.setStatus(result.getString("status"));
String statusString=mJson.getStatus();
Log.i("a",statusString );
// data dclazz=mJson.setData(data);
data dclass = new data();
// mJson.setData(dclass);
JSONObject datajJsonObject=result.getJSONObject("data");
dclass.setWendu(result.getJSONObject("data").getString("wendu"));
String wendusString=dclass.getWendu();
Log.i("温度",wendusString+"温度是多少" );
dclass.setGanmao(result.getJSONObject("data").getString("ganmao"));
String ganmaoString=dclass.getGanmao();
Log.i("感冒",ganmaoString+"感冒" );
JSONArray fcastArray = datajJsonObject.getJSONArray("forecast");
List<forecast> list = new ArrayList<forecast>();
//first forecast
forecast forcast=new forecast();
JSONObject firstforcast = fcastArray.getJSONObject(0);
forcast.setFengxiang(firstforcast.getString("fengxiang"));
String firstfengxiang =forcast.getFengxiang();
Log.i("fengxiang",firstfengxiang );
forcast.setFengli(firstforcast.getString("fengli"));
String firstfengli=forcast.getFengli();
Log.i("fengli",firstfengli );
forcast.setHigh(firstforcast.getString("high"));
String firsthigh=forcast.getHigh();
Log.i("high",firsthigh );
forcast.setType(firstforcast.getString("type"));
String firsttype=forcast.getType();
Log.i("type",firsttype );
forcast.setLow(firstforcast.getString("low"));
String firstlow=forcast.getLow();
Log.i("low",firstlow );
forcast.setDate(firstforcast.getString("date"));
String firstdate=forcast.getDate();
Log.i("date",firstdate );
//second forecast
forecast forcast1=new forecast();
JSONObject secondforcast = fcastArray.getJSONObject(1);
forcast1.setFengxiang(secondforcast.getString("fengxiang"));
String secondfengxiang =forcast1.getFengxiang();
Log.i("fengxiang1",secondfengxiang );
forcast1.setFengli(secondforcast.getString("fengli"));
String secondfengli=forcast1.getFengli();
Log.i("fengli1",secondfengli );
forcast1.setHigh(secondforcast.getString("high"));
String secondhigh=forcast1.getHigh();
Log.i("high1",secondhigh );
forcast1.setType(secondforcast.getString("type"));
String secondtype=forcast1.getType();
Log.i("type1",secondtype );
forcast1.setLow(secondforcast.getString("low"));
String secondlow=forcast1.getLow();
Log.i("low1",secondlow );
forcast1.setDate(secondforcast.getString("date"));
String seconddate=forcast1.getDate();
Log.i("date1",seconddate );
//third forcast
forecast forcast2=new forecast();
JSONObject thirdforcast = fcastArray.getJSONObject(2);
forcast2.setFengxiang(thirdforcast.getString("fengxiang"));
String tsecondfengxiang =forcast2.getFengxiang();
Log.i("fengxiang2",tsecondfengxiang );
forcast2.setFengli(thirdforcast.getString("fengli"));
String tsecondfengli=forcast2.getFengli();
Log.i("fengli2",tsecondfengli );
forcast2.setHigh(thirdforcast.getString("high"));
String tsecondhigh=forcast2.getHigh();
Log.i("high2",tsecondhigh );
forcast2.setType(thirdforcast.getString("type"));
String tsecondtype=forcast2.getType();
Log.i("type2",tsecondtype );
forcast2.setLow(thirdforcast.getString("low"));
String tsecondlow=forcast2.getLow();
Log.i("low2",tsecondlow );
forcast2.setDate(thirdforcast.getString("date"));
String tseconddate=forcast2.getDate();
Log.i("date2",tseconddate );
//four forcast
forecast forcast3=new forecast();
JSONObject fthirdforcast = fcastArray.getJSONObject(3);
forcast3.setFengxiang(fthirdforcast.getString("fengxiang"));
String ftsecondfengxiang =forcast3.getFengxiang();
Log.i("fengxiang2",ftsecondfengxiang );
forcast3.setFengli(fthirdforcast.getString("fengli"));
String ftsecondfengli=forcast3.getFengli();
Log.i("fengli2",ftsecondfengli );
forcast3.setHigh(fthirdforcast.getString("high"));
String ftsecondhigh=forcast3.getHigh();
Log.i("high2",ftsecondhigh );
forcast3.setType(fthirdforcast.getString("type"));
String ftsecondtype=forcast3.getType();
Log.i("type2",ftsecondtype );
forcast3.setLow(fthirdforcast.getString("low"));
String ftsecondlow=forcast3.getLow();
Log.i("low2",ftsecondlow );
forcast3.setDate(fthirdforcast.getString("date"));
String ftseconddate=forcast3.getDate();
Log.i("date2",ftseconddate );
list.add(forcast);
list.add(forcast1);
list.add(forcast2);
list.add(forcast3);
dclass.setFcast(list);
//获取yesterday
JSONObject yesterjJsonObject=result.getJSONObject("data").getJSONObject("yesterday");
yesterday yesclazz= new yesterday();
yesclazz.setFl( yesterjJsonObject.getString("fl"));
String yesfl=yesclazz.getFl();
Log.i("yesfl",yesfl);
yesclazz.setFx(yesterjJsonObject.getString("fx"));
String yesfx=yesclazz.getFx();
Log.i("yesfx",yesfx);
yesclazz.setHigh(yesterjJsonObject.getString("high"));
String yeshigh=yesclazz.getHigh();
Log.i("yeshigh",yeshigh);
yesclazz.setType(yesterjJsonObject.getString("type"));
String yestype=yesclazz.getType();
Log.i("yestype",yestype);
yesclazz.setLow(yesterjJsonObject.getString("low"));
String yeslow=yesclazz.getLow();
Log.i("yeslow",yeslow);
yesclazz.setDate(yesterjJsonObject.getString("date"));
String yesdate=yesclazz.getDate();
Log.i("yesdate",yesdate);
dclass.setYestday(yesclazz);
dclass.setAgi(result.getJSONObject("data").getString("aqi"));
String apiString=dclass.getAgi();
Log.i("aqi",apiString );
dclass.setCity(result.getJSONObject("data").getString("city"));
String cityString=dclass.getCity();
Log.i("城市",cityString );
mJson.setData(dclass);
_tTextView.setText(mJson.toString());
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
2.MyJson.java
package com.exale.asynctasktest;
public class MyJson {
private String desc;
private String status;
private data data;
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public data getData() {
return data;
}
public void setData(data data) {
this.data = data;
}
@Override
public String toString() {
return "MyJson [desc=" + desc + ", status=" + status + "\n, data=" + data
+ "]\n";
}
}
3.data.java
package com.exale.asynctasktest;
import java.util.List;
public class data {
private String wendu;
private String ganmao;
private List<forecast> fcast;
private yesterday yestday;
private String agi;
private String city;
public String getWendu() {
return wendu;
}
public void setWendu(String wendu) {
this.wendu = wendu;
}
public String getGanmao() {
return ganmao;
}
public void setGanmao(String ganmao) {
this.ganmao = ganmao;
}
public List<forecast> getFcast() {
return fcast;
}
public void setFcast(List<forecast> fcast) {
this.fcast = fcast;
}
public yesterday getYestday() {
return yestday;
}
public void setYestday(yesterday yestday) {
this.yestday = yestday;
}
public String getAgi() {
return agi;
}
public void setAgi(String agi) {
this.agi = agi;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
@Override
public String toString() {
return "data [wendu=" + wendu + ", \nganmao=" + ganmao + "\n, fcast="
+ fcast + ", yestday=" + yestday + ", agi=" + agi + ", city="
+ city + "]\n";
}
}
3.forecast.java
package com.exale.asynctasktest;
public class forecast {
private String fengxiang;
private String fengli;
private String high;
private String type;
private String low;
private String date;
public String getFengxiang() {
return fengxiang;
}
public void setFengxiang(String fengxiang) {
this.fengxiang = fengxiang;
}
public String getFengli() {
return fengli;
}
public void setFengli(String fengli) {
this.fengli = fengli;
}
public String getHigh() {
return high;
}
public void setHigh(String high) {
this.high = high;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getLow() {
return low;
}
public void setLow(String low) {
this.low = low;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
@Override
public String toString() {
return "forecast [fengxiang=" + fengxiang + ", fengli=" + fengli
+ ", high=" + high + ", type=" + type + ", low=" + low
+ ", date=" + date + "]\n";
}
}
5.yesterday
package com.exale.asynctasktest;
public class yesterday {
private String fl;
private String fx;
private String high;
private String type;
private String low;
private String date;
public String getFl() {
return fl;
}
public void setFl(String fl) {
this.fl = fl;
}
public String getFx() {
return fx;
}
public void setFx(String fx) {
this.fx = fx;
}
public String getHigh() {
return high;
}
public void setHigh(String high) {
this.high = high;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getLow() {
return low;
}
public void setLow(String low) {
this.low = low;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
@Override
public String toString() {
return "yesterday [fl=" + fl + ", fx=" + fx + ", high=" + high
+ ", type=" + type + ", low=" + low + ", date=" + date + "]"+"\n";
}
}