Grails视图中的名称值对

时间:2018-02-13 03:44:38

标签: grails grails3

我有一个Header类,如此:

class Header {
  String name
  String value
}

我有Grails View这样:

model {
  Set<Header> headers
}

json {
  headers ....
}

我想生成如下格式的JSON:

{
  "headers": {
    "Host": "xyz.com",
    "Other-Header": "da value"
  }
}

我尝试手动生成JSON值,但Grails只是把它放在引号内。所以这不起作用。

1 个答案:

答案 0 :(得分:0)

首先将Set<Header>转换为Map<String, String>

model {
    Set<Header> headers
}

json {
    headers renderHeaders(email.headers)
}

static Map<String, String> renderHeaders(Set<Header> headers) {
    Map<String, String> res = [:]
    for (Header header : headers) {
        res[header.name] = header.value
    }
    return res
}