Итак, мои данные анализируются в json, а затем помещаются в атрибуты модели. Как это:
@RequestMapping("/{id}")
public String getNetworkDetails(Model model, @PathVariable String id) throws JsonProcessingException{
model.addAttribute("poolHashrates", findAndDisplayDataService.getAllPools(Long.valueOf(id)));
model.addAttribute("poolDataJson", findAndDisplayDataService.returnPoolsAsJson(Long.valueOf(id)));
return "networkDetails :: modalContents";
}
Затем я пытаюсь назначить строку poolDataJson переменной JS во фрагменте html через:
<script>
var data = eval('('+'${poolDataJson}'+')');
console.info(data);
</script>
Что я хотел бы сделать с данными, так это передать их во внешний файл JavaScript в качестве данных для моей круговой диаграммы. Но сначала я получаю сообщение об ошибке при присвоении строки:
Uncaught SyntaxError: Unexpected token {
Что мне не хватает?
РЕДАКТИРОВАТЬ
Я также попытался назначить строку json для скрытого ввода через:
<input type = "hidden" id = "networkId" th:value = "${poolDataJson}"/></td>
А затем прочтите это с помощью:
var data = document.getElementById('networkId').innerHTML;
console.info(data);
Но опять же, в консоли ничего не печатается. Когда я вставляю ${poolDataJson} в
Одно и тоже. Неожиданный токен на var json = ${poolDataJson};



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы не должны возвращать String как текст JSON. Вместо этого вы должны вернуть обычные объекты Java, а затем оценить их следующим образом (тимелеаф автоматически преобразует объекты в JSON):
<script th:inline = "javascript">
var data = /*[[${poolDataJson}]]*/ {};
console.info(data);
</script>
Что касается ваших ошибок. Я должен предположить, что ваш метод findAndDisplayDataService.returnPoolsAsJson возвращает недопустимый JSON. Без реального примера сложно сказать.
Попробуйте назначить poolDataJson переменной, например var data = $ {poolDataJson}; а затем передать данные в eval.