ExpressionEngine 템플릿에 JSON을 만들고 해당 URL에 Ruby JSON 라이브러리를 가리키고 있습니다. 템플릿은 다음과 같습니다.ExpressionEngine 템플릿에서 빈 JSON 배열을 출력하지 않습니다
[
{exp:mylib:mytag channel="mychannel" backspace="1"}
{"entry_id":"{entry_id}","title":"{title}"},
{/exp:mylib:mytag}
]
태그가 데이터를 반환하면 모든 것이 정상이며 내 루비 코드는 객체 배열과 완벽하게 작동합니다. 그러나 태그가 데이터를 반환하지 않으면 (적절한 항목이 없기 때문에) Ruby는 json 문자열이 필수 2 옥텟 길이가 아니라고 불평합니다. 출력이 []
, 즉 비어 있지만 유효한 JSON 배열이라고 예상합니다. 그러나 Firefox/firebug 및 wget에서 URL을 방문하면 URL에서 되돌아 오는 응답의 길이가 0 바이트이고 상태 200 OK임을 알 수 있습니다.
태그없이 템플릿과 빈 대괄호 쌍을 만들어 동일한 결과 (0 바이트)를 만들어 테스트했습니다.
EE 템플릿 언어의 예약 토큰은 빈 대괄호 쌍입니까? 아무도 HTML 페이지에서 대괄호 쌍을 원할 수 없다고 가정하는 영리한 최적화가 있습니까?
태그 출력이 아닙니다. 말 그대로 문자 '[]'(_no_ tags)로 구성된 템플릿은 EE로 처리 할 때 비어 있습니다. – iftheshoefritz
EE 템플릿 기본 설정 관리자에서 구성한 [* 템플릿 유형 *] (http://expressionengine.com/user_guide/cp/design/templates/new_template.html#template-type) - PHP를 사용할 수 있습니까? – rjb
{if_no_results} 조건부에 대한 제안을 사용합니다. – iftheshoefritz