Я создаю JSON в шаблоне ExpressionEngine и указываю библиотеке Ruby JSON на соответствующий URL. Шаблон выглядит так:
[
{exp:mylib:mytag channel="mychannel" backspace="1"}
{"entry_id":"{entry_id}","title":"{title}"},
{/exp:mylib:mytag}
]
Когда тег возвращает данные, все в порядке, мой код Ruby отлично работает с массивом объектов. Однако, когда тег не возвращает данных (поскольку нет подходящих записей), Ruby жалуется, что длина строки json не равна 2 октетам. Я ожидаю, что результат будет []
, то есть пустой, но допустимый массив JSON. Однако посещение URL-адреса в Firefox / firebug и wget подтверждает, что ответ, возвращаемый с URL-адреса, имеет нулевую длину, со статусом 200 OK.
Я проверил дальше, создав шаблон без тегов и просто пару пустых квадратных скобок, с тем же результатом: ноль байтов.
Является ли пара пустых квадратных скобок каким-то образом зарезервированным токеном в языке шаблонов EE? Происходит ли какая-то умная оптимизация, которая предполагает, что никто никогда не захочет получить пару квадратных скобок на html-странице?