Весенняя загрузка: получение неправильного формата двойных запросов

#javascript #java #json #spring-boot #thymeleaf

#javascript #java #json #весенняя загрузка #thymeleaf

Вопрос:

Я пишу приложение, в котором мне нужно отправить некоторые данные из контроллера загрузки Spring в шаблон с помощью Thymeleaf.

У меня не было проблем, пока я не захотел отправить какой-нибудь JSON.

Двойной запрос( " ) изменен на amp;quot; .

Из-за этого я получаю сообщение об ошибке.

Контроллер:

 @GetMapping("/statistics")
public String viewStatistics(Model model) {
    JSONArray jsonArray = statisticsService.getTaskNamePercentageMap();
    System.out.println(jsonArray);
    model.addAttribute("taskNamePercentageMap", jsonArray);
    return "statistics/main";
}
  

Вывод System.out.println(JSONArray):

 [{"low":33,"name":"Tenis"},{"low":100,"name":"Rugby"}]
  

Код JavaScript в статистике / главном шаблоне:

 $(document).ready(function () {
        var json =[[${taskNamePercentageMap}]];
        /*... TO BE CONTINUED ...*/
    });
  

Переменная «a» в источниках вкладки разработчика Chrome:

 var b = JSON.stringify([{amp;quot;lowamp;quot;:33,amp;quot;nameamp;quot;:amp;quot;Tenisamp;quot;},{amp;quot;lowamp;quot;:100,amp;quot;nameamp;quot;:amp;quot;Rugbyamp;quot;}]);
  

Может кто-нибудь сказать мне, в чем проблема и как ее исправить?

Комментарии:

1. Взгляните на документацию в разделе 8.3

Ответ №1:

Попробуйте это

 var json = [(${taskNamePercentageMap})];
  

Из документов Thymeleaf 3.0

Обратите внимание, что, хотя [[…]] соответствует th:text (т. Е. результат будет экранирован в HTML), [(…)] соответствует th: utext и не будет выполнять никакого экранирования HTML.