Ruby ExpressionEngine模板将不会输出空JSON数组

Ruby ExpressionEngine模板将不会输出空JSON数组,ruby,json,expressionengine,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字

我正在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页面中有一对方括号

您是在开发自己的附加组件,还是在使用内置的ExpressionEngine标记

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

{exp:channel:entries channel="channel_name"}
    {if no_results} ...{/if}
{/exp:channel:entries}
许多第三方加载项还支持相同类型的{if_no_results}条件


您还可以看看第三方插件,它可能会给您一些关于如何处理您的情况的灵感。

这与标签的输出无关。由两个字符“[]”组成的模板在EE处理时,没有标记。您在EE模板首选项管理器中配置了什么?是否启用了PHP?将使用您建议的{if no_results}条件。