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();
}
}
}
...全文
相关推荐
安卓Android源码——解析json_dome.zip
安卓Android源码——解析json_dome.zip
安卓Android源码——安卓Android 解析json_dome.zip
安卓Android源码——安卓Android 解析json_dome.zip
Android 安卓 json解析
自己写的json解析,不使用第三方的jar包,简单易懂,分为本地json解析和online json解析,网上的只需要修改一下url地址即可
安卓Android源码——安卓Android 解析json_dome.rar
安卓Android源码——安卓Android 解析json_dome.rar
安卓解析json数据
安卓解析json数据源码 含 布局


