Разобрать файл JSON в объект Java, который перенаправляется на страницу JSP. - PullRequest
0 голосов
/ 03 сентября 2018

Я впервые использую JSON, и я был бы признателен за помощь. Я искал ответ в течение нескольких дней, не найдя решения, которое помогло бы мне продвинуться вперед. Я делаю веб-приложение Java, которое имеет следующие компоненты:

  1. Сервлет, который получает вызов GET
  2. В GET вы читаете файл JSON, который содержит данные об ученике (имя, фамилия, студент, курсы, оценки курсов)
  3. Данные должны быть преобразованы в объект Java
  4. Данные будут перенаправлены на страницу JSP
  5. На странице JSP будет отображена страница HTML, где данные отображаются в таблице HTML

Я знаю, что это удачный способ сделать это, но я знаю только Java и поэтому выполняю свою задачу таким образом. Вот мой файл JSON, страница сервлета и JSP. У меня также есть все необходимые POJO.

JSONData.json

{  "students": [
{
  "student": {
    "name": "Mike",
    "lastname": "Merrit",
    "studentid": 10,
    "course1": {
      "coursename": "Programming",
      "grade": 5
    },
    "course2": {
      "coursename": "Project",
      "grade": 3
    },
    "course3": {
      "coursename": "Java EE",
      "grade": 4
    },
    "startyear": 2015
  }
},
{
  "student": {
    "name": "Peter",
    "lastname": "Lombok",
    "studentid": 20,
    "course1": {
      "coursename": "Business",
      "grade": 4
    },
    "course2": {
      "coursename": "Math",
      "grade": 5
    },
    "course3": {
      "coursename": "Law",
      "grade": 2
    },
    "startyear": 2014
  }
},
{
  "student": {
    "name": "Rick",
    "lastname": "Roberts",
    "studentid": 30,
    "course1": {
      "coursename": "Databases",
      "grade": 3
    },
    "course2": {
      "coursename": "Linux",
      "grade": 3
    },
    "course3": {
      "coursename": "Windows",
      "grade": 5
    },
    "startyear": 2016
  }
}]}

GetServlet.java

public class GetServlet extends HttpServlet {

@SuppressWarnings("unchecked")
public void doGET(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {
    response.setContentType("text/html;charset=UTF-8");

    // JSONParser parser = new JSONParser();
    // ObjectMapper mapper = new ObjectMapper();
    Gson gson = new Gson();
    BufferedReader reader = null;

    try {
        reader = new BufferedReader(new FileReader("JSONData.json"));
        StudentList studentsList = gson.fromJson(reader, StudentList.class);

        request.setAttribute("students", studentsList);
        request.getRequestDispatcher("students.jsp").forward(request,
                response);

    } catch (Exception ex) {
        ex.printStackTrace();
    }

}}

students.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<!DOCTYPE html>
<html>
<head>
<title>Students</title>
</head>
<body>
<form action="/students" method="GET">

    <table>
        <c:forEach items="${studentsList}" var="student">
            <tr>
                <c:out value="${student.name}"/>

            </tr>
        </c:forEach>
    </table>

</form>
</body>
</html>

В настоящее время я запутался, если файл JSON правильно проанализирован в Java Object, если нет, то что я делаю здесь неправильно? Я изучил JSON.Simple, GSON и Jackson, но не нашел ответа, который решает мою проблему.

Также правильно ли я отправляю данные в JSP, потому что в данный момент ничего не печатается? Я сделал немного JSTL-кодирования, но только с базами данных SQL и методом POST.

Спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...