Android json 解析 简单示例

jopen 11年前

package com.sky.gallery;    import java.io.ByteArrayOutputStream;  import java.io.DataInputStream;  import java.io.IOException;  import java.io.InputStream;  import java.net.SocketTimeoutException;    import org.apache.http.HttpEntity;  import org.apache.http.HttpResponse;  import org.apache.http.client.methods.HttpGet;  import org.apache.http.impl.client.DefaultHttpClient;  import org.apache.http.params.BasicHttpParams;  import org.apache.http.params.HttpConnectionParams;  import org.apache.http.params.HttpParams;  import org.json.JSONArray;  import org.json.JSONObject;    import android.app.Activity;  import android.os.Bundle;  import android.util.Log;    public class ctivity extends Activity {      //音乐        private static String GAME_URL = "http://api.k.sohu.com/api/photos/list.go?rt=json&categoryId=2&pageSize=4&p1=NTc1MzY0OTc2NzAxNjA0MjUyMw%3D%3D";              @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main_activity);                              startGetGameListThread();                }                public  void startGetGameListThread() {            new Thread() {                @Override              public void run() {                  String jsonStr = null;                  int errorCode = 0;                    try { // 读取数据 j                      jsonStr = getGameJsonStr(GAME_URL);                      Log.i("test", "jsonStr = " + jsonStr);                      //parseAppList(jsonStr);                    } catch (Exception e) {                      e.printStackTrace();                      errorCode = 1;                  } finally {                    }                }            }.start();      }        private static String getGameJsonStr(String url) throws Exception {          Log.i("test", "getGameJsonStr(). url = " + url);            String jsonStr = null;            final HttpParams httpParameters = new BasicHttpParams();          HttpConnectionParams.setConnectionTimeout(httpParameters, 6000);          HttpConnectionParams.setSoTimeout(httpParameters, 6000);            final DefaultHttpClient client = new DefaultHttpClient(httpParameters);            final HttpGet get = new HttpGet(url);          HttpResponse resp;            resp = client.execute(get);          final HttpEntity entity = resp.getEntity();          final InputStream is = entity.getContent();          jsonStr = readToEnd(is);          is.close();            return jsonStr;      }        private static String readToEnd(InputStream input) throws IOException,              SocketTimeoutException {          final DataInputStream dis = new DataInputStream(input);          final byte[] stuff = new byte[1024];          final ByteArrayOutputStream buff = new ByteArrayOutputStream();          int read = 0;          while ((read = dis.read(stuff)) != -1) {              buff.write(stuff, 0, read);          }            return new String(buff.toByteArray());      }                  private static void log(String msg) {          Log.v("test", msg);      }      private void parseAppList(String jsonStr) throws Exception {          Log.v("test", "sssssssssssssssssssssssssssssssss");          try {              /*               * final JSONObject root = new JSONObject(jsonStr); Log.i("test",               * "root = " + root);               */           JSONObject oo = new JSONObject(jsonStr);           JSONArray array = oo.getJSONArray("videos");              //final JSONArray array = new JSONArray(jsonStr);              for (int i = 0; i < 20; ++i) {                  //JSONObject obj = array.getJSONObject(i);                    AppModle one = addOneGameModel(array.getJSONObject(i));                  Log.i("test", "每一个对象的  "+i+"         "+one.getTitle());                  Log.i("test", "每一个对象的  "+i+"         "+one.getId());                   Log.i("test", "每一个对象的  "+i+"         "+one.getArtistName());                                }                                        } catch (Exception e) {              e.printStackTrace();          }      }        private static AppModle addOneGameModel(JSONObject game) throws Exception {          AppModle one = new AppModle();  /*          one.setId(game.getInt("id"));          one.setTitle(game.getString("title"));         one.setArtistName(game.getString("artistName"));*/          return one;      }          }