android json 解析 簡單示例

 下面是一個簡單的json 解析的demo,廢話不多說,直接上代碼

 

 

 

 

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 = "https://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;
    }

   
}

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *