Grails 视图中的名称值对

Name value pairs in Grails Views

我有一个 Header class 像这样:

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 只是将其放在引号内。所以那没有用。

首先将 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
}