我正在制作一个listview并使用JSONObject进行数组目的但是我得到这个错误我不知道如何解决它我甚至不知道我的例外发生在我运行我的程序时它只是结束并且不显示任何结果这是我的java文件我希望有人能找到异常
@Override
protected ArrayList<TodayDetails> doInBackground(Void... params) {
try {
// Create a new HTTP Client
DefaultHttpClient defaultClient = new DefaultHttpClient();
// Setup the get request
HttpGet httpGetRequest = new HttpGet("http://api.androidhive.info/contacts");
// Execute the request in the client
HttpResponse httpResponse = defaultClient
.execute(httpGetRequest);
// Grab the response
BufferedReader reader = new BufferedReader(
new InputStreamReader(httpResponse.getEntity()
.getContent(), "UTF-8"));
String result = reader.readLine();
JSONObject object = new JSONObject(result);
JSONArray Jarray = object.getJSONArray("contact");
for (int i = 0; i < Jarray.length(); i++) {
JSONObject Jasonobject = Jarray.getJSONObject(i);
today_details = new TodayDetails();
today_details.setId(Jasonobject.getInt("id"));
today_details.setName(Jasonobject.getString("name"));
today_details.setEmail(Jasonobject.getString("email"));
today_details.setAddress(Jasonobject.getString("address"));
today_details.setGender(Jasonobject.getString("gender"));
today_details.setPhone(Jasonobject.getInt("phone"));
today_details.setHome(Jasonobject.getInt("home"));
today_details.setMobile(Jasonobject.getInt("mobile"));
today_details.setOffice(Jasonobject.getInt("office"));
search_results.add(today_details);
}
} catch(Exception e){
e.printStackTrace();
}
return search_results;
}
protected void onPostExecute(ArrayList<TodayDetails> search_results) {
if(WeatherToday.this.pd != null){
WeatherToday.this.pd.dismiss();
}
ArrayList<TodayDetails> today_details = search_results;
list_view_main = (ListView)findViewById(R.id.todaylist);
list_view_main.setAdapter(new TodayListAdapter(getApplicationContext(), today_details));
}
};
}
答案 0 :(得分:2)
SANITARY CHECK 使用JSON时
检查JSON端是否有错误。 这是json验证的有用链接。
Jsonlint尝试此链接验证您的JSON,只是复制/粘贴您的JSON并检查其是否有效
如果它有效,然后在这里发布,可能会更能帮助你。
如果它无效......那么一切都会好起来的: - )
代码检查
我希望你能找到这个有用的
使用Gson库非常有用,因为json变得更大。它为你处理所有事情。本质上是抽象的,并为你提供一些静态方法来检索json或制作一个。
这是我为使用Gson库进行json解析而编写的程序的要点。
答案 1 :(得分:1)
我能看到的第一件事是你希望“联系人”不是“联系”:
JSONArray Jarray = object.getJSONArray("contact");
自:
{
"contacts": [
{
"id": "c200",
并不是那个天气的东西也在那个JSON中。显然有许多事情都可能失败。
编辑:我看到你摆脱了天气。 HEH
编辑2 :然而,似乎无论是什么打印,logcat输出都关心天气。
编辑3 :您正在阅读 JSON的一行,即{
。这不是合适的JSON。阅读完整的输出。
String result = reader.readLine();