1、不可以在UI线程直接读取网络数据,所以另起线程处理这件事情
public class MainActivity extends ActionBarActivity implements IParseJsonCallback,IParseHtmlCallback{ public void ParseJsonPage(List<PhaseResultBean> resultList) { new ParseJson(this).execute(resultList); } @Override public void ParseJsonDone(List<PhaseResultBean> resultList) { //回调函数 } }
2、回调接口
package com.neohope.android.gpjj; import java.util.List; public interface IParseJsonCallback { void ParseJsonDone(List<PhaseResultBean> resultList); }
3、解析Json类
package com.neohope.android.gpjj; import android.os.AsyncTask; import android.util.Log; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.List; public class ParseJson extends AsyncTask<String,Void,List<PhaseResultBean>>{ private IParseJsonCallback jsonCallback; public ParseJson(IParseJsonCallback jsonCallback) { this.jsonCallback = jsonCallback; } @Override protected List<PhaseResultBean> doInBackground(String... params) { if(params==null)return null; List<PhaseResultBean> resultList= new ArrayList<PhaseResultBean>(); String jsonString = params[0]; try { JSONObject json= new JSONObject(jsonString); JSONArray jijinlist = json.getJSONArray("jijinlist"); for(int i=0;i<jijinlist.length();i++) { JSONObject JJ= jijinlist.getJSONObject(i); PhaseResultBean result = new PhaseResultBean(); result.code = JJ.getString("code"); resultList.add(result); } } catch (JSONException e) { e.printStackTrace(); } return resultList; } @Override protected void onPostExecute(List<PhaseResultBean> resultList) { super.onPostExecute(resultList); jsonCallback.ParseJsonDone(resultList); } @Override protected void onPreExecute() { super.onPreExecute(); } }