Я впервые использую JSON, и я был бы признателен за помощь. Я искал ответ в течение нескольких дней, не найдя решения, которое помогло бы мне продвинуться вперед. Я делаю веб-приложение Java, которое имеет следующие компоненты:
- Сервлет, который получает вызов GET
- В GET вы читаете файл JSON, который содержит данные об ученике (имя, фамилия, студент, курсы, оценки курсов)
- Данные должны быть преобразованы в объект Java
- Данные будут перенаправлены на страницу JSP
- На странице 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.
Спасибо за вашу помощь!