1

私は簡単なクイズ ゲームを作成しており、次のように質問を JSON ファイルに保存したいと考えています。

{"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 は文字列を返すため、ループしてすべての要素を表示することはできません。これどうやってするの?構文は知っています({% for question in file %})が、ネストされた要素にアクセスする方法がわかりません。

4

1 に答える 1

1

答えてくれたRedditに感謝します:

(defn json-page []
    (layout/render
        "json.html" {:file (parse-string (slurp "path/to/file") true)}))

答えはparse-string、json マップをキーワード化するためのパラメーターとして true を追加することでした。この後、json をループできます。

{% for question in file.questions %}
        <p>{{ question.question }}.</p>
        {{ question.answer_A}}
        {{ question.answer_B}}
        {{ question.answer_C}}
        {{ question.answer_D}}
 {% endfor %} 
于 2015-08-31T19:37:22.300 に答える