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