首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将perl散列转换为javascript散列

如何将perl散列转换为javascript散列
EN

Stack Overflow用户
提问于 2012-11-23 20:35:24
回答 2查看 2.7K关注 0票数 5

我在template toolkit框架中工作。我的tt文件中有一个perl散列数据类型。我想把这个散列数据类型转换成javascript散列数据类型。

代码:模板:

代码语言:javascript
复制
        [% PERL %]
        use JSON qw(encode_json);

        my $vars = {

            'version'  => 3.14,
            'days'     => [ qw( mon tue wed thu fri sat sun ) ],
            'cgi'      => CGI->new(),
            'me'       => {
                'id'     => 'abw',
                'name'   => 'Andy Wardley',
            },
        };

        my $json = encode_json($vars->{'me'});
    [% END %]


 <script>
   function callme(){
   var me = [% $json %]
  }
</script>

现在,我希望me散列可以在javascript中访问。

EN

回答 2

Stack Overflow用户

发布于 2012-11-27 14:00:37

有几个TT插件可以做到这一点,其中任何一个都比将原始perl嵌入到模板中更好。就我个人而言,我更喜欢JSON::Escape,但还有一些其他的。在写TT的5年多的时间里,我几乎每天都在写,我从来没有使用过[% PERL %]指令。不过,我想我不是在写CGI。YMMV.

代码语言:javascript
复制
[%- USE JSON.Escape( pretty => 1 );
    SET me = { id => 'abw', name => 'Andy Wardley' };
...
-%]

<script>
    function callme() {
    var me = [% me.json %]
    ...
</script>
票数 3
EN

Stack Overflow用户

发布于 2012-11-23 20:47:39

尝试在CPAN中使用JSON。它是JavaScript Simple Object Notation,您可以直接在JavaScript中使用它。

代码语言:javascript
复制
use JSON qw(encode_json);

my $vars = {

    'version'  => 3.14,
    'days'     => [ qw( mon tue wed thu fri sat sun ) ],
    'cgi'      => CGI->new(),
    'me'       => {
        'id'     => 'abw',
        'name'   => 'Andy Wardley',
    },
};
print encode_json($vars->{'me'});

输出:

代码语言:javascript
复制
{"name":"Andy Wardley","id":"abw}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13529284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档