如何防止脚本部分中的 HTMLentities-encode 字符串出现 Swirl?

How to prevent Twirl from HTMLentities-encode strings in script scetion?

我正在尝试使用 Twirl 将 JsonLd 嵌入到我的页面中,但由于某种原因,内容得到了 HTMLentities 编码。

我的(旋转模板)html 看起来像这样:

@(jsonLd: String)(implicit config: play.api.Configuration)
@main() {
  <script type="application/ld+json">
    @jsonLd
  </script>
}

但是当我在网络浏览器中查看时,我看到类似的内容:{&quot;@type&quot;:&quot;DataRecord&quot;,&quot;@context&quot;... 等等

如何防止 @jsonLd 被编码?

默认情况下,出于安全原因,所有动态内容都经过编码,以避免一些常见的攻击 (XSS)。看这里:https://www.playframework.com/documentation/2.8.x/ScalaTemplates#Escaping

您可以使用

@Html(jsonLd)