Estoy usando Java Spring Boot para el backend y Thymeleaf para el frontend. Estoy usando una API para recuperar y mostrar miles de imágenes. Lo que obtengo como respuesta es un objeto JSON que tiene miles de subobjetos, cada uno de los cuales tiene un enlace a la imagen.
Me gustaría enviar este gran objeto JSON a la interfaz. Estoy tratando de hacer un control deslizante de imagen. Cuando hago clic en el botón '>', aparecerá la siguiente imagen. El botón '<' mostraría la imagen anterior.
Así es como estoy enviando una respuesta API a la interfaz. 'modelo' es una instancia de ModelMap.
model.put("apiResponse", apiResponse); Ahora se puede acceder al objeto apiResponse desde el archivo HTML de interfaz. Sin embargo, no estoy seguro de cómo podría manipular esto con JavaScript. ¿Es que todos los objetos de Java no se pueden manejar usando JavaScript directamente?
En ese caso, ¿es la mejor práctica usar algún tipo de biblioteca para convertir objetos Java a JSON? Me preguntaba si debería hacerlo porque suena un poco raro:
¿No es raro que los datos originales sean JSON pero tengo que pasar por tantos pasos para volver a JSON? ¿Es así realmente como funcionan las cosas? Si no, ¿cuál es una mejor manera de hacer las cosas?
Resolví este problema usando Thymeleaf Script Inlining, como lo sugiere su documentación oficial .
<script th:inline="javascript"> /*<![CDATA[*/ var apiResponse = /*[[${apiResponse}]]*/ 'apiResponse'; /*]]>*/ </script> Después de eso, también pude acceder a la variable apiResponse en el archivo js externo.