android搜索json数据,android-检索Json数组

我正在尝试从以下URL中检索值:http://rentopoly.com/ajax.php?query=Bo.我想一一列出要显示在列表视图中的所有建议的值.这就是我想做的…

public class AlertsAdd {

public ArrayList retrieveJSONArray(String urlString) {

String result = queryRESTurl(urlString);

ArrayList ALERTS = new ArrayList();

if (result != null) {

try {

JSONObject json = new JSONObject(result);

JSONArray alertsArray = json.getJSONArray("suggestions");

for (int a = 0; a < alertsArray.length(); a++) {

JSONObject alertitem = alertsArray.getJSONObject(a);

ALERTS.add(alertitem);

}

return ALERTS;

} catch (JSONException e) {

Log.e("JSON", "There was an error parsing the JSON", e);

}

}

JSONObject myObject = new JSONObject();

try {

myObject.put("suggestions",myObject.getJSONArray("suggestions"));

ALERTS.add(myObject);

} catch (JSONException e1) {

Log.e("JSON", "There was an error creating the JSONObject", e1);

}

return ALERTS;

}

private String queryRESTurl(String url) {

// URLConnection connection;

HttpClient httpclient = new DefaultHttpClient();

HttpGet httpget = new HttpGet(url);

HttpResponse response;

try {

response = httpclient.execute(httpget);

HttpEntity entity = response.getEntity();

if (entity != null) {

InputStream instream = entity.getContent();

String result = convertStreamToString(instream);

instream.close();

return result;

}

} catch (ClientProtocolException e) {

Log.e("REST", "There was a protocol based error", e);

} catch (IOException e) {

Log.e("REST", "There was an IO Stream related error", e);

}

return null;

}

/**

* To convert the InputStream to String we use the

* BufferedReader.readLine() method. We iterate until the BufferedReader

* return null which means there's no more data to read. Each line will

* appended to a StringBuilder and returned as String.

*/

private String convertStreamToString(InputStream is) {

BufferedReader reader = new BufferedReader(new InputStreamReader(is));

StringBuilder sb = new StringBuilder();

String line = null;

try {

while ((line = reader.readLine()) != null) {

sb.append(line + "

");

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return sb.toString();

}

}

这是适配器代码…

public class AlertsAdapter extends ArrayAdapter {

public AlertsAdapter(Activity activity, List alerts) {

super(activity, 0, alerts);

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

Activity activity = (Activity) getContext();

LayoutInflater inflater = activity.getLayoutInflater();

View rowView = inflater.inflate(R.layout.list_text, null);

JSONObject imageAndText = getItem(position);

TextView textView = (TextView) rowView.findViewById(R.id.last_build_stat);

try {

textView.setText((String)imageAndText.get("suggestions"));

} catch (JSONException e) {

textView.setText("JSON Exception");

}

return rowView;

}

}

这是logcat …

04-30 13:09:46.656: INFO/ActivityManager(584): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.WorldToyota/.Alerts }

04-30 13:09:50.417: ERROR/JSON(924): There was an error parsing the JSON

04-30 13:09:50.417: ERROR/JSON(924): org.json.JSONException: JSONArray[0] is not a JSONObject.

04-30 13:09:50.417: ERROR/JSON(924): at org.json.JSONArray.getJSONObject(JSONArray.java:268)

04-30 13:09:50.417: ERROR/JSON(924): at com.WorldToyota.AlertsAdd.retrieveJSONArray(AlertsAdd.java:30)

04-30 13:09:50.417: ERROR/JSON(924): at com.WorldToyota.Alerts.onCreate(Alerts.java:20)

04-30 13:09:50.417: ERROR/JSON(924): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)

04-30 13:09:50.417: ERROR/JSON(924): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)

04-30 13:09:50.417: ERROR/JSON(924): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)

04-30 13:09:50.417: ERROR/JSON(924): at android.app.ActivityThread.access$2100(ActivityThread.java:116)

04-30 13:09:50.417: ERROR/JSON(924): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)

04-30 13:09:50.417: ERROR/JSON(924): at android.os.Handler.dispatchMessage(Handler.java:99)

04-30 13:09:50.417: ERROR/JSON(924): at android.os.Looper.loop(Looper.java:123)

04-30 13:09:50.417: ERROR/JSON(924): at android.app.ActivityThread.main(ActivityThread.java:4203)

04-30 13:09:50.417: ERROR/JSON(924): at java.lang.reflect.Method.invokeNative(Native Method)

04-30 13:09:50.417: ERROR/JSON(924): at java.lang.reflect.Method.invoke(Method.java:521)

04-30 13:09:50.417: ERROR/JSON(924): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)

04-30 13:09:50.417: ERROR/JSON(924): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)

04-30 13:09:50.417: ERROR/JSON(924): at dalvik.system.NativeStart.main(Native Method)

04-30 13:09:50.688: ERROR/JSON(924): There was an error creating the JSONObject

04-30 13:09:50.688: ERROR/JSON(924): org.json.JSONException: JSONObject["suggestions"] not found.

04-30 13:09:50.688: ERROR/JSON(924): at org.json.JSONObject.get(JSONObject.java:287)

04-30 13:09:50.688: ERROR/JSON(924): at org.json.JSONObject.getJSONArray(JSONObject.java:362)

04-30 13:09:50.688: ERROR/JSON(924): at com.WorldToyota.AlertsAdd.retrieveJSONArray(AlertsAdd.java:41)

04-30 13:09:50.688: ERROR/JSON(924): at com.WorldToyota.Alerts.onCreate(Alerts.java:20)

04-30 13:09:50.688: ERROR/JSON(924): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)

04-30 13:09:50.688: ERROR/JSON(924): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)

04-30 13:09:50.688: ERROR/JSON(924): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)

04-30 13:09:50.688: ERROR/JSON(924): at android.app.ActivityThread.access$2100(ActivityThread.java:116)

04-30 13:09:50.688: ERROR/JSON(924): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)

04-30 13:09:50.688: ERROR/JSON(924): at android.os.Handler.dispatchMessage(Handler.java:99)

04-30 13:09:50.688: ERROR/JSON(924): at android.os.Looper.loop(Looper.java:123)

04-30 13:09:50.688: ERROR/JSON(924): at android.app.ActivityThread.main(ActivityThread.java:4203)

04-30 13:09:50.688: ERROR/JSON(924): at java.lang.reflect.Method.invokeNative(Native Method)

04-30 13:09:50.688: ERROR/JSON(924): at java.lang.reflect.Method.invoke(Method.java:521)

04-30 13:09:50.688: ERROR/JSON(924): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)

04-30 13:09:50.688: ERROR/JSON(924): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)

04-30 13:09:50.688: ERROR/JSON(924): at dalvik.system.NativeStart.main(Native Method)

请帮助我解析此脚本并以列表格式显示值.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值