ExpressionEngine模板不会输出空的JSON数组

时间:2012-01-13 18:27:14

标签: ruby json expressionengine

我正在ExpressionEngine模板中创建JSON并将Ruby JSON库指向相关的URL。模板看起来像这样:

[
{exp:mylib:mytag channel="mychannel" backspace="1"}
  {"entry_id":"{entry_id}","title":"{title}"},
{/exp:mylib:mytag}
]

当标签返回数据时,一切都很好,我的Ruby代码与对象数组完美配合。但是,当标记没有返回数据时(因为没有适当的条目),Ruby抱怨json字符串的长度不是所需的2个八位字节。我希望输出为[],即空的但有效的JSON数组。但是,访问Firefox / firebug和wget中的URL确认从URL返回的响应长度为零字节,状态为200 OK。

我通过创建一个没有标签的模板和一对空方括号进一步测试,结果相同:零字节。

一对空方括号在EE模板语言中是某种保留标记吗?是否有一些聪明的优化正在假设没有人可以在html页面中想要一对方括号?

1 个答案:

答案 0 :(得分:1)

您是在开发自己的插件,还是使用内置的ExpressionEngine标签?

使用本机频道条目查询,您可以使用if_no_results条件标记来控制在没有匹配结果时输出的内容:

{exp:channel:entries channel="channel_name"}
    {if no_results} ...{/if}
{/exp:channel:entries}

许多第三方加载项也支持相同类型的{if_no_results}条件。

您可能还会看一下第三方ExpressionEngine JSON插件,它可能会为您提供一些如何处理您的情况的灵感。