如何解析一个 JSONArray 并将其分配给不同的 TextView?

How to parse a JSONArray and assign it to different TextViews?

我有一个 JSONArray,当我尝试解析它时,显示 NPE,而 logcat 显示 W/System.err: org.json.JSONException: Value at 0 is null. 请帮忙。我在下面提供了我的代码。

JSON数组

[
 {
  "student_number":"201411870",
  "full_name":"Miranda , Andrew Matthew Matera",
  "year":"4",
  "course":"BSIT"
 }
]

代码段

ArrayList<User> userArrayList = new JsonConverter<User>().toArrayList(response, User.class);
JSONArray jsonArray = new JSONArray(userArrayList);
try {
int regStudentNumber = jsonArray.getJSONObject(0).getInt("student_number");
String regFullName = jsonArray.getJSONObject(1).getString("full_name");
int regYear = jsonArray.getJSONObject(2).getInt("year");
String regCourse = jsonArray.getJSONObject(3).getString("course");

tvStudentNumber.setText(String.valueOf(regStudentNumber));
tvFullName.setText(regFullName);
tvYear.setText(String.valueOf(regYear));
tvCourse.setText(regCourse);
} catch (JSONException e) {
   e.printStackTrace();
}

我自己解决了。抱歉问题不清楚。

try {
  JSONArray jsonArray = new JSONArray(response);
     if(jsonArray != null) {
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            int regStudentNumber = jsonObject.getInt("student_number");
            String regFullName = jsonObject.getString("full_name");
            int regYear = jsonObject.getInt("year");
            String regCourse = jsonObject.getString("course");

            tvStudentNumber.setText(String.valueOf(regStudentNumber));
            tvFullName.setText(regFullName);                                               
            tvYear.setText(String.valueOf(regYear));
            tvCourse.setText(regCourse);
            }
      }
  } catch (JSONException e) {
       e.printStackTrace();
  }

首先将 JSON 数组解析为对象以明确它是针对特定值的,然后根据需要从中获取内容。

要将 json 数组解析为对象使用代码

try {
  JSONArray jsonArray = new JSONArray(response);
     if(jsonArray != null) {
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            }
      }
  } catch (JSONException e) {
       e.printStackTrace();
  }