您的位置:首页 > 移动开发 > Android开发

android json 解析 简单示例

2013-07-15 16:32 375 查看
1 下面是一个简单的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 = "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;

    }

    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: