加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – Template Toolkit,测试嵌套循环中的最后一次迭代

发布时间:2020-12-15 21:48:23 所属栏目:大数据 来源:网络整理
导读:我正在使用模板工具包来形成一个简单的 JSON响应(请参阅下面的代码). 我需要在响应的所有元素之后加上逗号,除了最后一个. 我相信我需要使用TTs迭代器,但是我没有把它弄好. 使用此代码,仍然会在最后一个元素的末尾打印逗号. 问题在于包含的部分 [% UNLESS out
我正在使用模板工具包来形成一个简单的 JSON响应(请参阅下面的代码).
我需要在响应的所有元素之后加上逗号,除了最后一个.

我相信我需要使用TTs迭代器,但是我没有把它弄好.
使用此代码,仍然会在最后一个元素的末尾打印逗号.

问题在于包含的部分

[% UNLESS outer.last && loop.last %],[% END %]

除非外循环和内循环在最后一次迭代中,否则应该添加逗号.

任何有关我出错的帮助都非常感谢.

{ "success": true,"filesdata": [
[%~ USE outer = iterator(objects); FOREACH object IN outer;
    FOREACH rep IN object.reps;
        IF rep.rep == reptype %]
{ "id":"[% object.id | xml %]","url":"[% rep.src | xml %]","story":"[% object.story | xml %]" }[% UNLESS outer.last && loop.last %],[% END %]
        [%~ END;
    END;
END ~%]
] }

解决方法

你尝试过使用join vmethod吗?您可以创建一个列表并使用逗号连接它:
[% items.join(',') %]

话虽如此,您可能还想查看Template::Plugin::SimpleJson.您可以创建一个哈希,然后将其传递给此插件.但是你确实决定这样做,你可能不想担心在实际的模板文件中引用你的JSON,并且使用这样的东西可以为你节省一些心痛.

还可以选择在模板本身之外创建JSON,但这超出了您的问题范围.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读