【问题标题】:How to get last object from a JSONArray如何从 JSONArray 中获取最后一个对象
【发布时间】:2017-02-04 06:23:08
【问题描述】:

我有一个listView 并且我为每个主题显示students attendance,我正在解析JSON 直到secondlast 的位置。为此,在获取计数时,我确实返回了attendanceBeanList.size()-1。请参见下面的代码。 我已经这样做了:

 private List<TotalAttendance_Bean> attendanceBeanList;
 public TotalAttendanceAdapter(Activity activity, List<TotalAttendance_Bean> attendanceBeanList)
{
    super();
    this.activity = activity;
    this.attendanceBeanList = attendanceBeanList;
}

@Override
public int getCount() {
   return attendanceBeanList.size()-1;
}

现在,当我要获取最后一个对象时,我被卡住了。我必须得到每个学生的总出勤率。为此,我必须从 JSONArray 下方获取 Last Object。

这是我的 JSON:

[
  {
    "subject_name": "English-I",
    "total_classes": "2",
    "total_attended": "2",
    "percentage": "100"
  },
  {
    "subject_name": "English-I",
    "total_classes": "2",
    "total_attended": "2",
    "percentage": "100"
  },
  {
      "subject_name": "English-I",
      "total_classes": "2",
      "total_attended": "2",
      "percentage": "100"
  },
  {
     "subject_name": "English-I",
     "total_classes": "2",
     "total_attended": "2",
     "percentage": "100"
 },
  {
      "total_attendance": 90%
  }
]

这是我的 XML。 在此布局中,我在列表视图中显示每个主题出勤率,并且我必须在 TextView 中以蓝色显示总百分比。

【问题讨论】:

  • 您发布的 Json 无效,请使用验证器并更正代码
  • 先生,我也检查过,它显示“有效 JSON”。我们不能在这个 JSON 中做吗

标签: java android json loops


【解决方案1】:

解析完所有students记录后,您可以获取您的total_attendance

JSONArray obj = new JSONArray(yourStringResponse);

// get the last object
JSONObject tot_obj = obj.getJSONObject(obj.length()-1);

// get String from last object
String tot_str = tot_obj.optString("total_attendance");

注意:optString 会将您的数据转换为String,否则它将给出一个空的string,例如""

现在您可以在ActivityTextView 中显示数据了

yourTextView.setText(tot_str);

如果需要,您可以将tot_str 传递给Adapter

public TotalAttendanceAdapter(Activity activity
                        , List<TotalAttendance_Bean> attendanceBeanList
                        , String tot)
{
    super();
    this.activity = activity;
    this.attendanceBeanList = attendanceBeanList;
    this.tot = tot;
}

【讨论】:

    【解决方案2】:

    在 android kotlin 中从 JSONArray 中获取最后一个对象

    第一种方法

    val bookings = jsonObject.getJSONArray("result")
    val lastObj: JSONObject = bookings.getJSONObject((bookings.length() - 1))
    hAddress.text = lastObj.optString("service_location")
    hDate.text = lastObj.optString("visit_date")
    hTime.text = lastObj.optString("visit_time")
    

    第二种方法

    val bookings = jsonObject.getJSONArray("result")
    for (i1 in 0 until bookings.length()) {
        val c1: JSONObject = bookings.getJSONObject(i1)
        hAddress.text = c1.optString("service_location")
        hDate.text = c1.optString("visit_date")
        hTime.text = c1.optString("visit_time")
    }
    

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 2011-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多