Возврат JSON из сервлета [дубликат]

Dani спросил: 28 марта 2018 в 03:18 в: javascript

У этого вопроса уже есть ответ:

  • How to use Servlets and Ajax? 7 ответов

Как вернуть JSON из сервлета? Это мой код, но что-то не работает, я думаю, что допустил ошибки в JS-коде но я не знаю, как его исправить.

Это сервлет

protected void doGet(HttpServletRequest request, HttpServletResponse  response)throws ServletException, IOException {    String enduser = ls.ReturnEndUser();    Utente user = ls.getUserByUsername(enduser); 
    String json = new Gson().toJson(user);
    System.out.println("il JSON è " + json);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(json);}

JS

$.get("UserServlet", function (response) {                                                                                      
document.getElementById("endusername").innerHTML = utente.nome;        
});

И это объект Utente

public Utente(String username, String nome, String cognome, String email, String password, int gruppo1, int gruppo2, int gruppo3, int gruppo4, int gruppo5,String img_src) {
    this.id_utente = id_utente;
    this.username = username;
    this.nome = nome;
    this.cognome = cognome;
    this.email = email;
    this.password = password;
    this.gruppo1 = gruppo1;
    this.gruppo2 = gruppo2;
    this.gruppo3 = gruppo3;
    this.gruppo4 = gruppo4;
    this.gruppo5 = gruppo5;
    this.img_src= img_src;
}


1 ответ

Himanshu Bhardwaj ответил: 28 марта 2018 в 04:00
$.get("UserServlet", function (response) {                                                                                      
  document.getElementById("endusername").innerHTML = utente.nome;        
});

Полагаю, вы просто хотите установить поле 'endusername' с помощью utente.nome. Таким образом, вам не нужен innerHTML здесь.

document.getElementById("endusername").innerHTML

должен быть

document.getElementById("endusername").value

PS не годится для синтаксиса.

Dani ответил: 28 марта 2018 в 04:11
Ну, консоль показывает: "Uncaught ReferenceError: Utente не определена"
Himanshu Bhardwaj ответил: 28 марта 2018 в 04:23
Вы отлаживали js и проверяли, что вы получаете в объекте ответа для обратного вызова js.
Dani ответил: 28 марта 2018 в 04:24
Да, из сервлета он возвращает правильно JSON; Я думаю, что ошибка все еще в JS, но IDK, что не так
Dani ответил: 28 марта 2018 в 04:34
Решено! js - это $ .get ("UserServlet", function (responseJSON) {document.getElementById ("endusername"). innerHTML = responseJSON.nome;});