Utilizando Servlet estou serializando um ArrayList para JSON porem o ajax não lista e não da nenhum erro eu acesso direito a servlet e está retornando certo o json
index.html
<html>
<head>
<title>Listar</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="scripts/js/jquery.js" type="text/javascript"></script>
<script src="index.js" type="text/javascript"></script>
</head>
<body>
<table border="1" width="500">
<thead>
<tr>
<th>ID</th>
<th>Nome</th>
<th>Quantidade</th>
</tr>
</thead>
<tbody id="tabela">
</tbody>
</table>
</body>
index.js
$(document).ready(function(){
$('#tabela').empty(); //Limpando a tabela
$.ajax({
type:'post', //Definimos o método HTTP usado
dataType: 'json', //Definimos o tipo de retorno
url: '/ProdutosServlet',//Definindo o arquivo onde serão buscados os dados
success: function(dados){
for(var i=0;dados.length>i;i++){
//Adicionando registros retornados na tabela
$('#tabela').append('<tr><td>'+dados[i].id+'</td><td>'+dados[i].nome+'</td><td>'+dados[i].quantidade+'</td></tr>');
}
}
});
});
Servlet
package controle;
import DAO.ProdutosDAO;
import Modelo.Produtos.Produtos;
import com.google.gson.Gson;
import java.io.IOException;
import java.io.PrintWriter;
import static java.lang.System.out;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet(name = "ProdutosServlet", urlPatterns = {"/ProdutosServlet"})
public class ProdutosServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
ArrayList<Object> arrobj = new ArrayList<Object>();
Gson objJson = new Gson();
try (PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
ProdutosDAO pd = new ProdutosDAO();
List<Produtos> arrprod = new ArrayList<Produtos>();
arrprod = pd.buscarTudo();
for (Produtos prod : arrprod) {
System.out.println(prod.getId());
System.out.println(prod.getNome());
System.out.println(prod.getQuantidade());
System.out.println(prod.getPreco());
System.out.println(prod.getMarca().getId());
}
arrobj.add(arrprod);
out.print(objJson.toJson(arrobj));
} catch (Exception ex) {
out.print(objJson.toJson(arrobj));
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ProdutosDAO pd = new ProdutosDAO();
List<Produtos> arrprod = new ArrayList<Produtos>();
arrprod = pd.buscarTudo();
for (Produtos prod : arrprod) {
System.out.println(prod.getId());
System.out.println(prod.getNome());
System.out.println(prod.getQuantidade());
System.out.println(prod.getPreco());
System.out.println(prod.getMarca().getId());
}
Gson objJson = new Gson();
ArrayList<Object> arrobj = new ArrayList<Object>();
arrobj.add(arrprod);
System.out.println(objJson.toJson(arrobj));
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
O Retorno Json executando a servlet
[[{"id":1,"nome":"Lata 350ml","quantidade":30,"preco":3.50,"marca":{"id":1}},{"id":2,"nome":"Garrafa 500ml","quantidade":10,"preco":5.00,"marca":{"id":1}},{"id":3,"nome":"Lata 200ml","quantidade":5,"preco":2.50,"marca":{"id":1}}]]