【问题标题】:How can I loop through json in the gsp each tag?如何在 gsp 每个标签中循环遍历 json?
【发布时间】:2014-03-20 10:58:38
【问题描述】:

我有以下代码:

<g:each var="question" in="${confHolder.config.faq}">
  <h1>${question.question}</h1>
  <h1>${question.answer}</h1>
</g:each>

在我的 conf 文件中,我有以下 json:

faq = [{"question":"What is this", "answer":"This thing"}, {"question":"What is this", "answer":"This thing"}];

我知道我正在正确读取文件,因为我可以这样做:

<script type="text/javascript">
  var faq = ${confHolder.config.faq} 
  for(var ii=0; ii<faq.length; ii++)
    alert(faq[0].question);
</script>

它会提醒我的问题。

如何在each标签中循环我的json并打印出&lt;h1&gt;&lt;/h1&gt;标签中的问题和答案?

【问题讨论】:

  • 你的 conf 文件是某种 JavaScript 文件吗?还是您的意思是 Config.groovy?如果是前者,你不能因为 gsp 是服务器端而数据是客户端,所以你需要一个 JavaScript 解决方案
  • 那么您在 grails-app/conf/Config.groovy 中的确切行是什么?您问题中的行不是有效的 groovy
  • 所以它实际上是一个 .properties 文件,它通过 grails.config.locations = ["file:resources/faq.properties"] 被拉入配置中
  • 对,所以它是一个字符串。试试&lt;g:each var="question" in="${new groovy.json.JsonSlurper().parseText( confHolder.config.faq )}"&gt;
  • 感谢您到目前为止的帮助!我添加了那行,它说“无法解析类 groovy.json.JsonSlurper”。因此,我尝试在 .gsp 文件的顶部添加 ,但仍然出现错误。有什么想法吗?

标签: json grails groovy gsp


【解决方案1】:

你需要将json解析成地图列表:

这应该适用于 grails 1.3.7

<g:each var="question" in="${grails.converters.JSON.parse( confHolder.config.faq )}">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    相关资源
    最近更新 更多