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