猿问

Android/Java中的JSON数组迭代

Android/Java中的JSON数组迭代

我正在构建一个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转换成可迭代的数组。有什么办法让我做到这一点吗?

我为我的道歉,但我在网上找到了一个例子,后来一直找不到它。


翻过高山走不出你
浏览 434回答 3
3回答

慕慕森

我用了两种不同的方法,1.)绘制地图&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HashMap<String,&nbsp;String>&nbsp;applicationSettings&nbsp;=&nbsp;new&nbsp;HashMap<String,String>(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;&nbsp;i<settings.length();&nbsp;i++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;value&nbsp;=&nbsp;settings.getJSONObject(i).getString("value"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;=&nbsp;settings.getJSONObject(i).getString("name"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;applicationSettings.put(name,&nbsp;value); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}2.)创建一个名称的JSONArray&nbsp;&nbsp;&nbsp;&nbsp;JSONArray&nbsp;names&nbsp;=&nbsp;json.names(); &nbsp;&nbsp;&nbsp;&nbsp;JSONArray&nbsp;values&nbsp;=&nbsp;json.toJSONArray(names); &nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=0;&nbsp;i<values.length();&nbsp;i++){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(names.getString(i).equals("description")){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setDescription(values.getString(i)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(names.getString(i).equals("expiryDate")){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;dateString&nbsp;=&nbsp;values.getString(i); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setExpiryDate(stringToDateHelper(dateString));&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(names.getString(i).equals("id")){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setId(values.getLong(i)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(names.getString(i).equals("offerCode")){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setOfferCode(values.getString(i)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(names.getString(i).equals("startDate")){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;dateString&nbsp;=&nbsp;values.getString(i); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setStartDate(stringToDateHelper(dateString)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(names.getString(i).equals("title")){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTitle(values.getString(i)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}

MM们

我认为这个代码简洁明了:int&nbsp;id;String&nbsp;name;JSONArray&nbsp;array&nbsp;=&nbsp;new&nbsp;JSONArray(string_of_json_array);for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;array.length();&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;JSONObject&nbsp;row&nbsp;=&nbsp;array.getJSONObject(i); &nbsp;&nbsp;&nbsp;&nbsp;id&nbsp;=&nbsp;row.getInt("id"); &nbsp;&nbsp;&nbsp;&nbsp;name&nbsp;=&nbsp;row.getString("name");}这就是你要找的吗?
随时随地看视频慕课网APP

相关分类

Java
Android
我要回答