Android json 解析 簡單示例

jopen 11年前發布 | 39K 次閱讀 Android Android開發 移動開發

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; }

}</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!