我有这个JSON数组,例如:filesList
我从我的groovy控制器收到:
[{"filenameAndPath":"a","description":"bb"}, {"filenameAndPath":"c","description":"d"},{"filenameAndPath":"e","description":"f"}]
在我的gsp中,我想将其呈现为这样的格式:
Filename and Path
a
Description
bb
Filename and Path
c
Description
d
Filename and Path
e
Description
f
如何将JSON解析为gsp页面中的此类标签和字段?
答案 0 :(得分:3)
首先使用grails.converters.JSON.parse(jsonString)
方法解析控制器中的JSON字符串,然后将生成的对象传递到视图中,并使用g:each
标记迭代数组和对象。
当迭代对象/地图条目时(例如在{"filenameAndPath":"a","description":"bb"}
示例中),您可以使用漂亮的简写语法:<g:each in="${map}" var="key, value">..</g:each>
其他普通HTML应该足够了。
答案 1 :(得分:0)
要解析一个json字符串,它是由Gregor上面定义的。唯一需要注意的是字符串中的json null,需要转换为真正的null。
这是一个将json字符串转换为map
的函数Map parseJSONSelection(String jsonString) {
def u=[]
def m=[:]
if (userSelection) {
def item=JSON.parse(userSelection)
item?.each {JSONObject i->
// when an element could be null set it to real null
if (JSONObject.NULL.equals(i.field)) {
i.field=null
}
u << i
}
m.allfilesAndPaths=item?.collect{it.filenameAndPath}
m.results=u
}
return m
}
现在在地图中返回它将包含map.results,它将是您传递给gsp的json字符串的迭代。