我正在给一组页面制作JSON。我想跳过没有标题的任何页面,最后一个元素后面不能有逗号,这是糟糕的JSON。试过不同的变化,这是一个例子:
---
---
[
{% for page in site.pages %}
{% unless page.title %}
{% continue %}
{% else %}
{
"title":"{{ page.title }}",
"content":"{{ page.content | strip_html | strip_newlines }}",
"href":"{{ page.url }}"
}
{% endunless %}
{% unless forloop.last %},{% endunless %}
{% endfor %}
]
生成的JSON文件的结尾如下所示:
{
"title":"Test Search",
"content":" ",
"href":"/search.html"
}
,
]
如何摆脱尾随的逗号?提前谢谢。
答案 0 :(得分:0)
我认为你的问题是你的上一次循环迭代是没有标题的。
尝试添加逗号。这样你就不必在未来展望:
{% assign isFirst = true %}
{% for page in site.pages %}
{% unless page.title %}{% continue %}{% endunless %}
{% unless isFirst %},{% endunless %}
{% assign isFirst = false %}
{
"title": {{ page.title | jsonify }},
"content": {{ page.content | strip_html | strip_newlines | jsonify }},
"href": {{ page.url | jsonify }}
}
{% endfor %}
修改:您还应该使用jsonify
过滤器来确保正确转出引号和其他字符。