Solución:
Spring boot usa jackson como serializador predeterminado y está intentando devolver JSONObject. Jackson no sabe cómo serializarlo.
Si desea devolver json dinámico, puede usar Map como se muestra a continuación:
@GetMapping("/pgTabelka")
public Map<String, Object> pgTable(HttpServletRequest request)
{
Map<String, Object> json = new HashMap();
int draw = 0;
int start = 0;
int length = 10;
if(request.getParameter("draw")!=null)
draw = Integer.parseInt(request.getParameter("draw"));
if(request.getParameter("start")!=null)
start = Integer.parseInt(request.getParameter("start"));
if(request.getParameter("length")!=null)
length = Integer.parseInt(request.getParameter("length"));
int totalRecords = sed.recordsTotal();
List<Seria> serie = sed.findPart(start, length);
json.put("draw", ++draw);
json.put("recordsTotal", totalRecords);
json.put("recordsFiltered", totalRecords);
json.put("data", serie);
return json;
}
O puede crear una clase que represente su estructura json y devolver su clase de datos personalizada como respuesta, Spring se encargará del resto por usted.
@GetMapping("/pgTabelka")
public YourJsonDataClass pgTable(HttpServletRequest request)
{
...
YourJsonDataClass json = new YourJsonDataClass();
json.setDraw(++draw);
json.setRecordsTotal(totalRecords);
json.setRecordsFiltered(totalRecords);
json.setData(serie);
return json;
}
Use HashMap en lugar de usar JSONObject
List<HashMap<String, String>> myList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<>();
map.put(key, value);
myList.add(map);
Si tiene un ResultSet, puede repetir este código a través de rs. Vale la pena señalar que si su HashMap tiene claves duplicadas, tendrá que usar un Multimap ya que HashMap no permite claves duplicadas
Multimap<String, String> map = ArrayListMultimap.create();
map.put(key1, "value1");
map.put(key1, "value2");
map.put(key2, "value3");
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)