Clojure 在Selmer模板中循环使用JSON
我正在制作一个简单的问答游戏,并想将问题存储在一个JSON文件中,如下所示:Clojure 在Selmer模板中循环使用JSON,clojure,luminus,selmer,Clojure,Luminus,Selmer,我正在制作一个简单的问答游戏,并想将问题存储在一个JSON文件中,如下所示: {"questions": [ { "question":"2+2 ?", "answer_A":1, "answer_B":2, "answer_C":3, "answer_D":4, "correct_answer":4 }, { "q
{"questions":
[
{
"question":"2+2 ?",
"answer_A":1,
"answer_B":2,
"answer_C":3,
"answer_D":4,
"correct_answer":4
},
{
"question":"2+3?",
"answer_A":1,
"answer_B":2,
"answer_C":3,
"answer_D":5,
"correct_answer":5
}
] }
这是从文件加载的代码:
defn json-page []
(layout/render
"json.html" {:file (parse-string (slurp "path/to/file"))}))
parse string返回一个字符串,所以我不能循环它来显示每个元素。我该怎么做?我知道语法
({%表示文件%}中的问题)
,但我不知道如何访问嵌套元素。感谢Reddit的回答:
(defn json-page []
(layout/render
"json.html" {:file (parse-string (slurp "path/to/file") true)}))
答案是添加true作为parse string
的参数,以对json映射进行关键字化。在此之后,我可以在json上循环:
{% for question in file.questions %}
<p>{{ question.question }}.</p>
{{ question.answer_A}}
{{ question.answer_B}}
{{ question.answer_C}}
{{ question.answer_D}}
{% endfor %}
{%for file.questions%}
{{question.question}}
{{问题.回答}
{{问题.答案{u B}}
{{问题.回答{C}}
{{问题.答案}
{%endfor%}