我试图解析包含JSON对象数组的字符串,但直到API 19(Kit-Kat)操作系统才支持org.json.JSONArray。出于显而易见的原因,我需要找出解决办法。有更好的选择吗?或者我错误地使用这种方法?Android中的JSONArray替代方案
这里是一个不断告诉我的代码,我需要API 19或更高:
protected void onPostExecute(JSONArray result) {
pDialog.dismiss();
try {
// Getting JSON Array from URL
info = new JSONArray(result);
for(int i = 0; i < info.length(); i++){
JSONObject c = info.getJSONObject(i);
// Storing JSON item in a Variable
String title = c.getString(TAG_TITLE);
String article = c.getString(TAG_ARTICLE);
String timestamp = c.getString(TAG_TIMESTAMP);
String datestring = c.getString(TAG_DATESTRING);
// Adding value HashMap key => value
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_TITLE, title);
map.put(TAG_ARTICLE, article);
map.put(TAG_TIMESTAMP, timestamp);
map.put(TAG_DATESTRING, datestring);
oslist.add(map);
list=(ListView)findViewById(R.id.list);
ListAdapter adapter = new SimpleAdapter(MainActivity.this, oslist,
R.layout.list_v,
new String[] { TAG_TITLE,TAG_ARTICLE, TAG_TIMESTAMP,TAG_DATESTRING }, new int[] {
R.id.title,R.id.article, R.id.timestamp,R.id.date_string});
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this, "You Clicked at "+oslist.get(+position).get("name"), Toast.LENGTH_SHORT).show();
}
});
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
顺便说一句,我使用的AsyncTask把信息变成一个ListView。我有另一个类来获取网页的结果。谢谢!
是什么让你认为org.json .JSONArray仅在API 19中受支持? –
@SteveBenett基本上是这么说的:['JSONArray'](http://developer.android.com/reference/org/json/JSONArray.html)自API级别1开始已经存在。 –
Eclipse告诉我JSONArray是只支持在API 19 :( – user1064249