android解析json报空指针异常。

印第安囚徒 印第安囚徒 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下

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

}
}


...全文
评论 6
收藏 已收藏
分享
返回顶部
印第安囚徒
Android 80,490 成员 91,375 内容