我正在构建一个需要下载并与在线数据库同步的android应用,我将查询从该应用发送到php页面,该页面以JSON格式返回数据库中的相关行。
有人可以告诉我迭代JSON数组的最佳方法吗?
我收到一个对象数组:
[{json object},{json object},{json object}]
我可以用来访问数组中的JSONObjects的最简单的代码是什么?
编辑:现在,我想到它,我用来迭代循环的方法是:
for (String row: json){ id = row.getInt("id"); name = row.getString("name"); password = row.getString("password"); }
所以我想我已经能够以某种方式将返回的Json变成可迭代的数组。有什么想法可以实现这一目标吗?
我为自己的冒昧表示歉意,但我是通过网上发现的一个示例进行此操作的,此后一直找不到。
我已经用两种不同的方式做到了
1.) make a Map
HashMap<String, String> applicationSettings = new HashMap<String,String>(); for(int i=0; i<settings.length(); i++){ String value = settings.getJSONObject(i).getString("value"); String name = settings.getJSONObject(i).getString("name"); applicationSettings.put(name, value); }
2.) make a JSONArray of names
JSONArray names = json.names(); JSONArray values = json.toJSONArray(names); for(int i=0; i<values.length(); i++){ if (names.getString(i).equals("description")){ setDescription(values.getString(i)); } else if (names.getString(i).equals("expiryDate")){ String dateString = values.getString(i); setExpiryDate(stringToDateHelper(dateString)); } else if (names.getString(i).equals("id")){ setId(values.getLong(i)); } else if (names.getString(i).equals("offerCode")){ setOfferCode(values.getString(i)); } else if (names.getString(i).equals("startDate")){ String dateString = values.getString(i); setStartDate(stringToDateHelper(dateString)); } else if (names.getString(i).equals("title")){ setTitle(values.getString(i)); } }