android - 遍历嵌套的 json 数组是将先前分配的值添加到数据模型

标签 android json arraylist android-json

请查看这个 json:

{
  "data": [
    {
      "date": "Thursday 1, August, 2019",
      "time": [
        {
          "times": "1:13PM to 1:13PM",
          "notice": "testing",
          "category": "Meeting"
        },
        {
          "times": "12:00PM to 1:00PM",
          "notice": "Meeting",
          "category": "Meeting"
        }
      ]
    },
    {
      "date": "Friday 2, August, 2019",
      "time": [
        {
          "times": "3:00PM to 3:30PM",
          "notice": "Appointment",
          "category": "Meeting"
        },
        {
          "times": "12:00PM to 12:30PM",
          "notice": "Appointment",
          "category": "Meeting"
        }
      ]
    },
    {
      "date": "Monday 5, August, 2019",
      "time": [
        {
          "times": "11:00AM to 11:30AM",
          "notice": "Obj",
          "category": "Meeting"
        }
      ]
    }
  ]
}

我像这样将这个 json 数据填充到我的 ArrayList 中:

VipPojo playerModel;
try {
    JSONArray dataArray = obj.getJSONArray("data");
    for (int i = 0; i < dataArray.length(); i++) {
        JSONObject dataobj = dataArray.getJSONObject(i);
        JSONArray dataArrays1 = dataobj.getJSONArray("time");
        String date = dataobj.getString("date");
        System.out.println("date: " + date); // here I get correct data (all 3 items);
        for (int j = 0; j < dataArrays1.length(); j++) {
            playerModel = new VipPojo();
            JSONObject dataobj1 = dataArrays1.getJSONObject(j);
            playerModel.setDate(date); // this is adding same previous assigned "date" until loop ends(I get 5 data with duplicate values)
            playerModel.setTimes(dataobj1.getString("times"));
            playerModel.setNotice(dataobj1.getString("notice"));
            playerModel.setCategory(dataobj1.getString("category"));
            dataModelArrayList.add(playerModel);
        }
    }
} catch (JSONException e) {
    e.printStackTrace();
}

正如我在上面代码的注释中提到的,“date” 对象正在将先前分配的值添加到数据模型,因为 setDate() 正在内部循环中使用,它我不想要那个。

你能帮我解决这个问题吗?

最佳答案

关于android - 遍历嵌套的 json 数组是将先前分配的值添加到数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57433666/

相关文章:

java - LoopJ Android 异步 Http 客户端 - java.net.SocketTimeoutException

javascript - 如何添加从下拉列表中删除某些 json 数组

php - 如何使用 mysqli_fetch_assoc 从 mysql 中获取所有行并转换为 JSON

java - 将 sqlite 中的数据放入 ArrayList<String>

Java method().method() 调用

java - 检测 Activity 何时发生变化

java - ArrayIndexOutofBoundException - Java - Android - 接收流数据并存储在多维数组中 Java

python - 从 .json 文件获取行而不是列中的值时出现问题

java - 从 ArrayList<Object> 转换为我自己的类

java - 没有找到 android facet