嗨我这里有一个剧本
http://myprocity.com/android/fetchthecity.php
返回一个数组数组。我想在Android中解析这个并存储每个值。
我现在的代码就是这个,也许这是有缺陷的?我什么都没有出现
public static void refreshFeed(Activity act){
ActionEngine.swamiOn = false;
FetchTheCityTask f = new FetchTheCityTask(act);
f.execute();
try {
if (f.get() != null) {
JSONArray feedArr = new JSONArray();
feedArr = json.getJSONArray("data");
ArrayList<UserRecord> items = new ArrayList<UserRecord>();
for(int i = 0; i < feedArr.length(); i++){
for(int j = 0; j < feedArr.getJSONArray(i).length(); j++) {
JSONObject row = feedArr.getJSONArray(i).getJSONObject(j);
String item = row.getString("Item");
String descp = row.getString("Description");
String pic = row.getString("PicPath");
String time = row.getString("Time");
String donatedby = row.getString("DonatedBy");
String ebase = row.getString("Ebase");
String cond = row.getString("Condition");
String loc = row.getString("Location");
items.add(new UserRecord(item,descp,pic,time,donatedby,
ebase,cond,loc));
}
}
TheCityFragment.feedArea.setAdapter(new UserItemAdapter(act,
android.R.layout.simple_list_item_1, items));
答案 0 :(得分:0)
返回一个数组数组。
我不这么认为,
我从您的文件“数组对象”中看到,因此您的代码无效。
尝试做点什么:
JSONArray json = new JSONArray(resultAsString);
// ...
for(int i=0;i<json.length();i++){
//...
JSONObject row = json.getJSONObject(j);
String item = row.getString("Item");
String descp = row.getString("Description");
String pic = row.getString("PicPath");
String time = row.getString("Time");
String donatedby = row.getString("DonatedBy");
String ebase = row.getString("Ebase");
String cond = row.getString("Condition");
String loc = row.getString("Location");
//..
}
希望它能帮到你
答案 1 :(得分:0)
您的JSON结果在http://bodurov.com/jsonformatter/上解析,显示了以下结果:
我建议将json结果更改为:
{"data" : [yourjsonArray]}
因此,您需要将JSON_ARRAY
封装在JSON_OBJECT
中,以便使用getJSONArray("data")
来获取数组。
JSONObject jObject = new JSONObject(resultstringhere); //f.get() ?
JSONArray jArray = jObject.getJSONArray("data");
希望这有帮助,
里德