为了账号安全,请及时绑定邮箱和手机立即绑定

无法从thymeleaf的javascript中解析JSON对象

无法从thymeleaf的javascript中解析JSON对象

暮色呼如 2021-03-29 12:23:38
在控制器中,我放入了简单的java对象,并使用jackson将其映射到JSON。    Station station = stationRepo.findFirstByCodeEquals(320007);    ObjectMapper objectMapper = new ObjectMapper();    String JSONstation = objectMapper.writeValueAsString(station);    model.addAttribute("station",JSONstation);在前端,我使用Thymeleaf在标签中获取此对象:<p id="test" th:text="${station}">Test 1</p><p id="test2">Test 2</p><p id="test3">Test 3</p>而且我只是使用document.getElementById(“ test”)。innerText在javascript中获取此JSON对象,然后将其解析为js对象。    var JSONtest = "[[${station}]]";    var JSONstation = document.getElementById("test").innerText;    document.getElementById("test2").innerHTML = typeof JSONtest;    var jsStation = JSON.parse(JSONstation);    document.getElementById("test3").innerHTML = JSONtest.rusName;但是,当我使用var JSONtest =“ [[$ {station}]]从百里香获取JSON对象时,我无法将其解析为js对象,但是它们是相同的。我在此代码中做错了什么?
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

在JavaScript中使用Thymeleaf变量时,不应将其作为传递String。相反,您应该像往常一样将变量添加到模型中:


model.addAttribute("station", station);

并让Thymeleaf自动将其转换为JavaScript(它将处理您的对象至JSON的转换,无需您使用Jackson):


<script th:inline="javascript">

    var JSONtest = /*[[${station}]]*/ {};

</script>


查看完整回答
反对 回复 2021-04-08
  • 1 回答
  • 0 关注
  • 714 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号