如何解析JSONArray并将其分配给不同的TextViews?

时间:2018-02-21 21:59:20

标签: android json textview

我有一个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();
}

2 个答案:

答案 0 :(得分:0)

我自己解决了。对不明确的问题感到抱歉。

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

答案 1 :(得分:0)

首先将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();
  }