HTML :: Template Perl

时间:2012-01-16 14:51:21

标签: html json perl

IIs有一个类似于perl中的HTml :: Template的包,它接受一个JSON对象并将其映射到HTML模板文件吗?我正在使用HTML :: Template构建一个Web应用程序,并将从Web服务API接收JSOn,如果我可以将此JSOn模板化为HTML而不是按照HTML :: Template的要求进行操作,那么事情将变得简单。

3 个答案:

答案 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)

好吧,有点晚了,但是: HTML :: Template总是想要散列哈希数组,依此类推。 并且您无法浏览参数存储。 如果你想这样做,你可以试试HTML :: Template :: Compiled,它允许你这样做。

<tmpl_var some_hash.key.another_key[23] >

或使用其他分隔符:

[%= some_hash.key.another_key[23] %]

但请注意模块与HTML :: Template的差异。

因此,您将JSON字符串解码为数据结构并将其传递给模板,然后您可以访问结构深处的所有值。