当前位置:编程学习 > JS >>

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 = "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+"  &n

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,