Kev*_*haw 147 java arrays android 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");
}
Run Code Online (Sandbox Code Playgroud)
所以我想我已经能以某种方式将返回的Json转换为可迭代的数组.任何想法我怎么能做到这一点?
我为我的迷途道歉,但我从网上找到的一个例子中得到了这个,但后来一直无法找到它.
vip*_*ipw 331
我认为这段代码很简短明了:
int id;
String name;
JSONArray array = new JSONArray(string_of_json_array);
for (int i = 0; i < array.length(); i++) {
JSONObject row = array.getJSONObject(i);
id = row.getInt("id");
name = row.getString("name");
}
Run Code Online (Sandbox Code Playgroud)
那是你在找什么?
Nat*_*ann 67
我做了两种不同的方式,
1.)制作地图
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);
}
Run Code Online (Sandbox Code Playgroud)
2.)制作名称的JSONArray
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));
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
不幸的是,JSONArray
不支持以下foreach
语句:
for(JSONObject someObj : someJsonArray) {
// do something about someObj
....
....
}
Run Code Online (Sandbox Code Playgroud)
当我尝试@vipw 的建议时,我遇到了这个异常:
The method getJSONObject(int) is undefined for the type JSONArray
这对我有用:
int myJsonArraySize = myJsonArray.size();
for (int i = 0; i < myJsonArraySize; i++) {
JSONObject myJsonObject = (JSONObject) myJsonArray.get(i);
// Do whatever you have to do to myJsonObject...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
210967 次 |
最近记录: |