在gsp

时间:2016-09-15 18:57:59

标签: json grails groovy gsp

我有这个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页面中的此类标签和字段?

2 个答案:

答案 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字符串的迭代。