У меня есть список, извлеченный из базы данных Postgres, и мне нужно иметь возможность ссылаться на него / манипулировать им с помощью JavaScript.
Я обновил код, как показано ниже:
Вот метод doGet сервлета:
protected void doGet(HttpServletRequest req, HttpServletResponse json)
throws ServletException, IOException {
List<Employee> employees = uds.findAll();
req.setAttribute("employees", employees);
json.setContentType("application/json");
json.getWriter().write(String.valueOf(employees));
}
А вот что у меня сейчас есть в JavaScript:
var ajax = new XMLHttpRequest();
ajax.open("GET", "http://localhost:8080/project1attempt/servlet", true);
// send request
ajax.send();
// event to get response
ajax.onreadystatechange = function() {
// Case state is 4 e o http.status for 200, your request is OK.
if (ajax.readyState == 4 && ajax.status == 200) {
var data = ajax.responseText;
// the return
console.log(data);
}
}
}
Проблема, с которой я столкнулся на данный момент, заключается в том, что клиент не получает данные в формате JSON. Если я зарегистрирую данные, как показано выше, журнал выдаст что-то вроде следующего:
[Employee{, employee_id='123456', email='lt@gmail.com', firstName='Juan',
lastName='Terri'}, Employee{, employee_id='2', email='sstark@mail.com',
firstName='Sansa', lastName='Stark'}]
Это правильные данные, но не в полезном формате.
Однако, если я попытаюсь сделать console.log(JSON.parse(data))
, тогда я получу Uncaught SyntaxError: Unexpected token E in JSON at position 1
.
Я считаю, что это простая синтаксическая ошибка с моей стороны в сервлете, но я не уверен, как ее исправить.