IIs有一个类似于perl中的HTml :: Template的包,它接受一个JSON对象并将其映射到HTML模板文件吗?我正在使用HTML :: Template构建一个Web应用程序,并将从Web服务API接收JSOn,如果我可以将此JSOn模板化为HTML而不是按照HTML :: Template的要求进行操作,那么事情将变得简单。
答案 0 :(得分:6)
HTML :: Template只采用由字符串,散列和数组组成的数据结构。 JSON直接映射到它。
$template->param(myData => JSON::Any->new->decode($json_string));
答案 1 :(得分:1)
HTML::Template
是一个相当“简单”的模板引擎 - 我使用引号因为它的简单性让你可以在view
架构的Model View Controller
部分中执行任何操作。
但是,您无法在HTML::Template
内执行任意perl代码。
此外,由于在JSON
中您可能拥有非常复杂的数据结构,我怀疑是否有任何合适的方法可以直接在模板中使用JSON
。
我认为唯一可行的解决方案是使用Perl脚本解析JSON
,创建一些“对象”并将它们传递给模板。您已经拥有该perl脚本 - 是实例化HTML::Template
对象的脚本。
答案 2 :(得分:1)
<tmpl_var some_hash.key.another_key[23] >
或使用其他分隔符:
[%= some_hash.key.another_key[23] %]
但请注意模块与HTML :: Template的差异。
因此,您将JSON字符串解码为数据结构并将其传递给模板,然后您可以访问结构深处的所有值。