簡體   English   中英

無法從 thymeleaf 中的 javascript 中解析 JSON object

[英]Can`t parse JSON object from in javascript from thymeleaf

In controller I put simple java object, mapped to JSON using jackson.

    Station station = stationRepo.findFirstByCodeEquals(320007);

    ObjectMapper objectMapper = new ObjectMapper();
    String JSONstation = objectMapper.writeValueAsString(station);
    model.addAttribute("station",JSONstation);

在前端,我使用 Thymeleaf 在標簽中獲取此 object:

<p id="test" th:text="${station}">Test 1</p>
<p id="test2">Test 2</p>
<p id="test3">Test 3</p>

And I simply get this JSON object in javascript using document.getElementById("test").innerText, and parse it into js object.

    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;

But when I thy to get JSON object from thymeleaf using var JSONtest = "[[${station}]]" I can`t parse it into js object, but they are the same. 我在這段代碼中做錯了什么?

在JavaScript中使用Thymeleaf變量時,不應將它們作為String傳遞。 相反,您應該像往常一樣將變量添加到模型中:

model.addAttribute("station", station);

並讓Thymeleaf自動將其翻譯為JavaScript(它將處理您的對象到JSON的翻譯,無需您使用Jackson):

<script th:inline="javascript">
    var JSONtest = /*[[${station}]]*/ {};
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM