我正在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页面中想要一对方括号?
答案 0 :(得分:1)
您是在开发自己的插件,还是使用内置的ExpressionEngine标签?
使用本机频道条目查询,您可以使用if_no_results条件标记来控制在没有匹配结果时输出的内容:
{exp:channel:entries channel="channel_name"}
{if no_results} ...{/if}
{/exp:channel:entries}
许多第三方加载项也支持相同类型的{if_no_results}
条件。
您可能还会看一下第三方ExpressionEngine JSON插件,它可能会为您提供一些如何处理您的情况的灵感。