为了账号安全,请及时绑定邮箱和手机立即绑定

Android/Java中的JSON数组迭代

Android/Java中的JSON数组迭代

翻过高山走不出你 2019-07-09 13:10:56
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转换成可迭代的数组。有什么办法让我做到这一点吗?我为我的道歉,但我在网上找到了一个例子,后来一直找不到它。
查看完整描述

3 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

我用了两种不同的方法,

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);
        }

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));
        }
    }


查看完整回答
反对 回复 2019-07-09
?
MM们

TA贡献1886条经验 获得超2个赞

我认为这个代码简洁明了:

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");}

这就是你要找的吗?


查看完整回答
反对 回复 2019-07-09
  • 3 回答
  • 0 关注
  • 433 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信