android解析json报空指针异常。
代码如下
package com.student.activity;import java.net.URI;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.util.EntityUtils;import org.json.JSONArray;import org.json.JSONObject;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.widget.ListView;import android.widget.SimpleAdapter;import android.widget.Toast;public class StuManagerActivity extends Activity { private static final String TAG = "StuManagerActivity"; private List<HashMap<String, Object>> list = null; private HashMap<String, Object> stu = null; private ListView listView = null; private static String url = "http://192.168.1.103:8080/StudentServer/getJsonStu.action"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); listView = (ListView) findViewById(R.id.stuList); getServerData(url); } public void getServerData(String url) { // 提供默认的HttpClient实现 HttpClient client = new DefaultHttpClient(); HttpPost request; try { request = new HttpPost(new URI(url)); HttpResponse response = client.execute(request); // 判断请求是否成功 if (response.getStatusLine().getStatusCode() == 200) { HttpEntity entity = response.getEntity(); if (entity != null) { String out = EntityUtils.toString(entity, "UTF-8"); Log.i(TAG, out); JSONArray jsonArray = new JSONArray(out); System.out.println(jsonArray.length()); list = new ArrayList<HashMap<String, Object>>(); System.out.println(list.size()); for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = (JSONObject) jsonArray.get(i); String stuName = jsonObject.getString("studentName"); String stuSex = jsonObject.getString("stuSex"); String phone = jsonObject.getString("phone"); stu.put("stuName", stuName); stu.put("stuSex", stuSex); stu.put("phone", phone); System.out.println(stuName); list.add(stu); System.out.println(list.size()+""); } SimpleAdapter adapter = new SimpleAdapter( StuManagerActivity.this, list, R.layout.item, new String[] { "stuName", "stuSex", "phone" }, new int[] { R.id.stuName, R.id.stuSex, R.id.phone }); listView.setAdapter(adapter); } } } catch (Exception e) { e.printStackTrace(); Log.e(TAG, e.toString()); Toast.makeText(StuManagerActivity.this, "获取数据失败!", Toast.LENGTH_LONG).show(); } }}