Thymeleaf 将 JSON 字符串作为 JSON 对象打印到 javascript 变量中
Thymeleaf print JSON string as JSON object into a javascript variable
具体
我需要一种方法来通过 thymeleaf 将字符串值的 JSON
表示形式打印到 html 页面中。
详细
我有一个 model attribute
,其中包含一个字符串,该字符串实际上是 JSON
的字符串表示形式
我的thymeleaf
代码
<script th:inline="javascript">
var value = [[${data.scriptValue}]];
</script>
如下打印变量
var value = '[[\"asd\",\"3\"],[\"asd\",\"1\"],[\"asdasd\",\"1\"]]';
但我想要这样的东西作为 javascript/JSON
数组
var value = [["asd","3"],["asd","1"],["asdasd","1"]];
如何在百里香中做到这一点?
注意:我知道我可以从 JSON.Parse
做到这一点,但我需要一种从 thymeleaf 做到这一点的方法:)
更新 - 2015/12/24
此功能在 Thymeleaf 3 中可用
在https://github.com/thymeleaf/thymeleaf/issues/395
中参考The Thymeleaf textual syntax
// Unescaped (actual answer)
var value = [(${data.scriptValue})];
//or
var value = [# th:utext="${data.scriptValue}"/];
// Escaped
var value = [[${data.scriptValue}]];
//or
var value = [# th:text="${data.scriptValue}"/];
Thymeleaf 2 不可能。 正如 Patric LC 提到的,报告了两个问题。
@Faraj,Thymeleaf 的新版本提供了此功能。他们针对您提到的问题实施功能。你可以在这里看:
http://www.thymeleaf.org/doc/articles/thymeleaf3migration.html
主要特点:
- 三种文本模板模式:TEXT、JAVASCRIPT和CSS。
- 文本模板模式中元素的新语法:
[# ...] ... [/]
。
- 允许内联输出表达式,包括转义的
([[...]])
和未转义的 ([(...)])
。
- 智能转义 JavaScript(作为文字)和 CSS(作为标识符)。
- 解析器级
(/*[- ... -]*/)
和仅限原型的 (/*[+ ... +]*/)
评论块。
- 自然模板应用于 JAVASCRIPT 脚本和 CSS 样式表,通过包装元素 and/or 注释中的输出表达式
(/*[# ...]*/)
.
具体
我需要一种方法来通过 thymeleaf 将字符串值的 JSON
表示形式打印到 html 页面中。
详细
我有一个 model attribute
,其中包含一个字符串,该字符串实际上是 JSON
我的thymeleaf
代码
<script th:inline="javascript">
var value = [[${data.scriptValue}]];
</script>
如下打印变量
var value = '[[\"asd\",\"3\"],[\"asd\",\"1\"],[\"asdasd\",\"1\"]]';
但我想要这样的东西作为 javascript/JSON
数组
var value = [["asd","3"],["asd","1"],["asdasd","1"]];
如何在百里香中做到这一点?
注意:我知道我可以从
JSON.Parse
做到这一点,但我需要一种从 thymeleaf 做到这一点的方法:)
更新 - 2015/12/24
此功能在 Thymeleaf 3 中可用
在https://github.com/thymeleaf/thymeleaf/issues/395
中参考The Thymeleaf textual syntax
// Unescaped (actual answer)
var value = [(${data.scriptValue})];
//or
var value = [# th:utext="${data.scriptValue}"/];
// Escaped
var value = [[${data.scriptValue}]];
//or
var value = [# th:text="${data.scriptValue}"/];
Thymeleaf 2 不可能。 正如 Patric LC 提到的,报告了两个问题。
@Faraj,Thymeleaf 的新版本提供了此功能。他们针对您提到的问题实施功能。你可以在这里看: http://www.thymeleaf.org/doc/articles/thymeleaf3migration.html
主要特点:
- 三种文本模板模式:TEXT、JAVASCRIPT和CSS。
- 文本模板模式中元素的新语法:
[# ...] ... [/]
。 - 允许内联输出表达式,包括转义的
([[...]])
和未转义的([(...)])
。 - 智能转义 JavaScript(作为文字)和 CSS(作为标识符)。
- 解析器级
(/*[- ... -]*/)
和仅限原型的(/*[+ ... +]*/)
评论块。 - 自然模板应用于 JAVASCRIPT 脚本和 CSS 样式表,通过包装元素 and/or 注释中的输出表达式
(/*[# ...]*/)
.