Я использую Spring Boot framework и Thymeleaf для создания своей программы.
Когда я передаю свою строку даты с помощью ModelAndView в моем контроллере следующим образом:
@RequestMapping(value = "/search")
public ModelAndView search() {
ModelAndView view = new ModelAndView("exchangerate");
List<String> timeList = new ArrayList<>();
timeList.add("2017/07/21");
timeList.add("2017/07/24");
timeList.add("2017/07/25");
timeList.add("2017/07/26");
view.addObject("timeList",timeList);
return view;
}
А также
<script>
var yAxis = [[${timeList}]];
var yAxis2 = ['2017-07-21', '2017-07-24', '2017-07-25', '2017-07-26'];
console.info(yAxis);
console.info(yAxis2);
</script>
В консоли я вижу
[13.721088435374151, 12.005952380952381, 11.525714285714287, 11.082417582417584]
["2017-07-21", "2017-07-24", "2017-07-25", "2017-07-26"]
Так что я предполагаю, что yAxix читается как число.
Что мне делать, если я хочу использовать yAxis в формате строки или даты?



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


Понять, почему это происходит, довольно просто.
Когда вы отправляете его в JavaScript для обработки, JSON.parse фактически интерпретирует ваши даты как (2017/07)/21, который оценивается с плавающей десятичной дробью, которую вы видите. Это означает, что ваши даты не преобразуются в строки для JSON перед отправкой дальше.
В качестве средства правовой защиты рассмотрите возможность отправки дат, завернутых в соответствующий объект даты, из конца Spring, или подумайте о приведении дат перед их отправкой с помощью сопоставителя JSON в конце Spring.
Я считаю, что используя:
<script th:inline = "javascript">
исправлю это. Он должен выводить его как список строк в кавычках.